Followup-For: Bug #1075914
X-Debbugs-Cc: hwans...@mailbox.org
Control: reassign -1 src:sphinx-rtd-theme
Control: affects -1 developers-reference
Control: tags -1 patch

This seems to relate to the Sphinx ReadTheDocs theme, and when I went digging
around in the code there, it seemed that there is already a JavaScript event
handler[1] in 'theme.js' that is intended to close the sidebar menu when a
hyperlink is clicked.  It seems that that handler isn't being called.

For multi-page HTML projects, that's generally not a problem because the
browser opens the requested link page and rebuilds the DOM, applies CSS etc
from scratch - and the sidebar is closed by default, so it appears to the user
that the click/navigation closed it.

The root cause seems to be something to do with the CSS select query that is
used to attach the event handler.  I'm attaching a patch that resolved the
issue when I tested it locally -- and should be compatible with the Debian
package build.

It would be nice to figure out whether the CSS query worked in the past;
perhaps this bug is a regression.

[1] - 
https://sources.debian.org/src/sphinx-rtd-theme/2.0.0%2Bdfsg-1/src/theme.js/#L88-L97
commit c34a308ef0afe4882d27498593028e94c7d58578
Author: James Addison <j...@jp-hosting.net>
Date:   Tue Jul 9 13:35:16 2024 +0100

    JavaScript: attach sidebar close-on-click handler to all menu hyperlinks.

diff --git a/src/theme.js b/src/theme.js
index db546b4..b66a54e 100644
--- a/src/theme.js
+++ b/src/theme.js
@@ -86,7 +86,7 @@ function ThemeNav () {
             })
 
             // Nav menu link click operations
-            .on('click', ".wy-menu-vertical .current ul li a", function() {
+            .on('click', ".wy-menu-vertical ul li a", function() {
                 var target = $(this);
                 // Close menu when you click a link.
                 $("[data-toggle='wy-nav-shift']").removeClass("shift");

Reply via email to