From e836b1b9d082d904533c2c7fc510a17fec030182 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 24 Oct 2019 00:37:14 +0200 Subject: [PATCH 1/2] Prevent help popup to disappear when clicking on it --- src/librustdoc/html/static/main.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index f0104c9156ded..5171190d0ddc5 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -380,8 +380,11 @@ function getSearchElement() { set_fragment(cur_id); } } else if (hasClass(document.getElementById("help"), "hidden") === false) { - addClass(document.getElementById("help"), "hidden"); - removeClass(document.body, "blur"); + var is_inside_help_popup = document.getElementById("help").contains(ev.target); + if (is_inside_help_popup === false) { + addClass(document.getElementById("help"), "hidden"); + removeClass(document.body, "blur"); + } } else { // Making a collapsed element visible on onhashchange seems // too late From 863796be7debb97e79d46aacc6501f1d4a6424ae Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 25 Oct 2019 13:43:25 +0200 Subject: [PATCH 2/2] Improve help popup detection --- src/librustdoc/html/static/main.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 5171190d0ddc5..b95042247798d 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -379,10 +379,11 @@ function getSearchElement() { set_fragment(cur_id); } - } else if (hasClass(document.getElementById("help"), "hidden") === false) { - var is_inside_help_popup = document.getElementById("help").contains(ev.target); + } else if (hasClass(getHelpElement(), "hidden") === false) { + var help = getHelpElement(); + var is_inside_help_popup = ev.target !== help && help.contains(ev.target); if (is_inside_help_popup === false) { - addClass(document.getElementById("help"), "hidden"); + addClass(help, "hidden"); removeClass(document.body, "blur"); } } else {