diff options
| author | Jacob Hoffman-Andrews <github@hoffman-andrews.com> | 2021-04-18 14:33:33 -0700 |
|---|---|---|
| committer | Jacob Hoffman-Andrews <github@hoffman-andrews.com> | 2021-04-18 22:44:10 -0700 |
| commit | 39b299f8a46fd3c2467a61ce7a5b9829ce03fc7d (patch) | |
| tree | 5d689328d30c0374fb863021e079e523f9c54f4e /src/librustdoc/html | |
| parent | 392ba2ba1a7d6c542d2459fb8133bebf62a4a423 (diff) | |
| download | rust-39b299f8a46fd3c2467a61ce7a5b9829ce03fc7d.tar.gz rust-39b299f8a46fd3c2467a61ce7a5b9829ce03fc7d.zip | |
rustdoc: make expand/collapse all ephemeral
The `[+]` in the upper right of a rustdoc page expands or collapses all toggles on the page. That state is stored across page loads, but is used inconsistently. This change explicitly stops storing or using the state.
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/static/main.js | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index f017fd846b1..76d95dc9d9f 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -905,7 +905,6 @@ function hideThemeButtonState() { return; } if (hasClass(innerToggle, "will-expand")) { - updateLocalStorage("rustdoc-collapse", "false"); removeClass(innerToggle, "will-expand"); onEachLazy(document.getElementsByTagName("details"), function(e) { e.open = true; @@ -920,7 +919,6 @@ function hideThemeButtonState() { }); } } else { - updateLocalStorage("rustdoc-collapse", "true"); addClass(innerToggle, "will-expand"); onEachLazy(document.getElementsByTagName("details"), function(e) { e.open = false; @@ -1075,7 +1073,7 @@ function hideThemeButtonState() { } } - function collapser(e, collapse) { + function collapseNonInherent(e, collapse) { // inherent impl ids are like "impl" or impl-<number>'. // they will never be hidden by default. var n = e.parentElement; @@ -1087,28 +1085,6 @@ function hideThemeButtonState() { } } - function autoCollapse(collapse) { - if (collapse) { - toggleAllDocs(true); - } else if (getSettingValue("auto-hide-trait-implementations") !== "false") { - var impl_list = document.getElementById("trait-implementations-list"); - - if (impl_list !== null) { - onEachLazy(impl_list.getElementsByClassName("collapse-toggle"), function(e) { - collapser(e, collapse); - }); - } - - var blanket_list = document.getElementById("blanket-implementations-list"); - - if (blanket_list !== null) { - onEachLazy(blanket_list.getElementsByClassName("collapse-toggle"), function(e) { - collapser(e, collapse); - }); - } - } - } - function insertAfter(newNode, referenceNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } @@ -1167,6 +1143,22 @@ function hideThemeButtonState() { var hideMethodDocs = getSettingValue("auto-hide-method-docs") === "true"; var hideImplementors = getSettingValue("auto-collapse-implementors") !== "false"; var hideLargeItemContents = getSettingValue("auto-hide-large-items") !== "false"; + var hideTraitImplementations = + getSettingValue("auto-hide-trait-implementations") !== "false"; + + var impl_list = document.getElementById("trait-implementations-list"); + if (impl_list !== null) { + onEachLazy(impl_list.getElementsByClassName("collapse-toggle"), function(e) { + collapseNonInherent(e, collapse); + }); + } + + var blanket_list = document.getElementById("blanket-implementations-list"); + if (blanket_list !== null) { + onEachLazy(blanket_list.getElementsByClassName("collapse-toggle"), function(e) { + collapseNonInherent(e, collapse); + }); + } var func = function(e) { var next = e.nextElementSibling; @@ -1353,8 +1345,6 @@ function hideThemeButtonState() { onEachLazy(document.getElementsByClassName("docblock"), buildToggleWrapper); onEachLazy(document.getElementsByClassName("sub-variant"), buildToggleWrapper); - autoCollapse(getSettingValue("collapse") === "true"); - var pageId = getPageId(); if (pageId !== null) { expandSection(pageId); |
