From 834448163d9835dee7512d537d86ca6c58e56b84 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Sat, 15 Oct 2022 21:02:57 -0700 Subject: [PATCH] rustdoc: make help button a no-op when on help page --- src/librustdoc/html/static/js/main.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index 619d4bb399e..db1cc8e4516 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -951,8 +951,23 @@ function loadCss(cssFileName) { if (isHelpPage) { showHelp(); + document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click", event => { + // Already on the help page, make help button a no-op. + const target = event.target; + if (target.tagName !== "A" || + target.parentElement.id !== HELP_BUTTON_ID || + event.ctrlKey || + event.altKey || + event.metaKey) { + return; + } + event.preventDefault(); + }); } else { document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click", event => { + // By default, have help button open docs in a popover. + // If user clicks with a moderator, though, use default browser behavior, + // probably opening in a new window or tab. const target = event.target; if (target.tagName !== "A" || target.parentElement.id !== HELP_BUTTON_ID ||