about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-01-18 04:42:00 +0100
committerGitHub <noreply@github.com>2022-01-18 04:42:00 +0100
commitcc2339ce83b6874b213b2385fd7eb7cb6c674aa1 (patch)
treeb865e7319f1f935b5e84ac7bf5b76adf100b4fd0
parent804072fdfc4db19b4f3deac52fe8318a52ce19b5 (diff)
parentb71f1fb0027cf49909d8597fcc90a77d5f573cc3 (diff)
downloadrust-cc2339ce83b6874b213b2385fd7eb7cb6c674aa1.tar.gz
rust-cc2339ce83b6874b213b2385fd7eb7cb6c674aa1.zip
Rollup merge of #92803 - jsha:hide-sidebar, r=GuillaumeGomez
Hide mobile sidebar on some clicks

When the user clicks outside the sidebar, the sidebar should close. Also, when the user clicks an internal link in the sidebar, it should close.

Fixes #92682

Demo: https://rustdoc.crud.net/jsha/hide-sidebar/std/string/struct.String.html
-rw-r--r--src/librustdoc/html/static/js/main.js4
-rw-r--r--src/test/rustdoc-gui/sidebar-mobile.goml8
2 files changed, 12 insertions, 0 deletions
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index 011e60b8fa0..64bc9a44538 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -902,6 +902,9 @@ function hideThemeButtonState() {
     handleClick("help-button", function(ev) {
         displayHelp(true, ev);
     });
+    handleClick(MAIN_ID, function() {
+        hideSidebar();
+    });
 
     onEachLazy(document.getElementsByTagName("a"), function(el) {
         // For clicks on internal links (<A> tags with a hash property), we expand the section we're
@@ -910,6 +913,7 @@ function hideThemeButtonState() {
         if (el.hash) {
             el.addEventListener("click", function() {
                 expandSection(el.hash.slice(1));
+                hideSidebar();
             });
         }
     });
diff --git a/src/test/rustdoc-gui/sidebar-mobile.goml b/src/test/rustdoc-gui/sidebar-mobile.goml
index 7138f916675..eecd584bca9 100644
--- a/src/test/rustdoc-gui/sidebar-mobile.goml
+++ b/src/test/rustdoc-gui/sidebar-mobile.goml
@@ -18,3 +18,11 @@ assert-css: (".sidebar-elems", {"display": "block", "left": "0px"})
 // When we tab out of the sidebar, close it.
 focus: ".search-input"
 assert-css: (".sidebar-elems", {"display": "block", "left": "-246px"})
+
+// Open the sidebar menu.
+click: ".sidebar-menu"
+assert-css: (".sidebar-elems", {"left": "0px"})
+
+// Click elsewhere.
+click: "body"
+assert-css: (".sidebar-elems", {"left": "-246px"})