Skip to content

Commit 9aef9a2

Browse files
committed
Inhibit clicks on summary's children
A byproduct of using `<details>` and `<summary>` to show/hide detailed documentation was that clicking any part of a method heading (or impl heading) would show or hide the documentation. This was not super noticeable because clicking a link inside the method heading would navigate to that link. But clicking any unlinked black text in a method heading would trigger the behavior. That behavior was somewhat unexpected, and means that if you try to click a type name in a method heading, but miss by a few pixels, you get a confusing surprise. This change inhibits that behavior by putting an event listener on most summaries that cancels the event unless the event target was the summary itself. In practice, that means it cancels the event unless the target was the "[+]" / "[-]", because the rest of the heading is wrapped inside a `<div>`, which is the target for anything that doesn't have a more specific target.
1 parent ce3f3a5 commit 9aef9a2

File tree

1 file changed

+8
-0
lines changed
  • src/librustdoc/html/static/js

1 file changed

+8
-0
lines changed

src/librustdoc/html/static/js/main.js

+8
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,14 @@ function hideThemeButtonState() {
886886
}
887887
});
888888

889+
onEachLazy(document.querySelectorAll(".rustdoc-toggle > summary:not(.hideme)"), function(el) {
890+
el.addEventListener("click", function(e) {
891+
if (e.target.tagName != "SUMMARY") {
892+
e.preventDefault();
893+
}
894+
})
895+
});
896+
889897
onEachLazy(document.getElementsByClassName("notable-traits"), function(e) {
890898
e.onclick = function() {
891899
this.getElementsByClassName('notable-traits-tooltiptext')[0]

0 commit comments

Comments
 (0)