Skip to content

Commit ca65a5e

Browse files
committed
Don't auto-hide inherent impls even if rustdoc-collapse == true.
1 parent 8398ab8 commit ca65a5e

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

src/librustdoc/html/static/main.js

+25-24
Original file line numberDiff line numberDiff line change
@@ -1775,7 +1775,7 @@
17751775
}
17761776
}
17771777

1778-
function toggleAllDocs(pageId) {
1778+
function toggleAllDocs(pageId, fromAutoCollapse) {
17791779
var toggle = document.getElementById("toggle-all-docs");
17801780
if (!toggle) {
17811781
return;
@@ -1787,20 +1787,23 @@
17871787
e.innerHTML = labelForToggleButton(false);
17881788
});
17891789
toggle.title = "collapse all docs";
1790-
onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
1791-
collapseDocs(e, "show");
1792-
});
1790+
if (fromAutoCollapse !== true) {
1791+
onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
1792+
collapseDocs(e, "show");
1793+
});
1794+
}
17931795
} else {
17941796
updateLocalStorage("rustdoc-collapse", "true");
17951797
addClass(toggle, "will-expand");
17961798
onEveryMatchingChild(toggle, "inner", function(e) {
17971799
e.innerHTML = labelForToggleButton(true);
17981800
});
17991801
toggle.title = "expand all docs";
1800-
1801-
onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
1802-
collapseDocs(e, "hide", pageId);
1803-
});
1802+
if (fromAutoCollapse !== true) {
1803+
onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
1804+
collapseDocs(e, "hide", pageId);
1805+
});
1806+
}
18041807
}
18051808
}
18061809

@@ -1921,17 +1924,19 @@
19211924
}
19221925
}
19231926

1924-
function autoCollapseAllImpls(pageId) {
1925-
// Automatically minimize all non-inherent impls
1926-
onEach(document.getElementsByClassName('impl'), function(n) {
1927-
// inherent impl ids are like 'impl' or impl-<number>'
1928-
var inherent = (n.id.match(/^impl(?:-\d+)?$/) !== null);
1929-
if (!inherent) {
1930-
onEach(n.childNodes, function(m) {
1931-
if (hasClass(m, "collapse-toggle")) {
1932-
collapseDocs(m, "hide", pageId);
1933-
}
1934-
});
1927+
function autoCollapse(pageId, collapse) {
1928+
if (collapse) {
1929+
toggleAllDocs(pageId, true);
1930+
}
1931+
onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
1932+
// inherent impl ids are like 'impl' or impl-<number>'.
1933+
// they will never be hidden by default.
1934+
var n = e.parentNode;
1935+
if (n.id.match(/^impl(?:-\d+)?$/) === null) {
1936+
// Automatically minimize all non-inherent impls
1937+
if (collapse || hasClass(n, 'impl')) {
1938+
collapseDocs(e, "hide", pageId);
1939+
}
19351940
}
19361941
});
19371942
}
@@ -2044,8 +2049,6 @@
20442049
}
20452050
});
20462051

2047-
autoCollapseAllImpls(getPageId());
2048-
20492052
function createToggleWrapper(tog) {
20502053
var span = document.createElement('span');
20512054
span.className = 'toggle-label';
@@ -2175,9 +2178,7 @@
21752178
hideSidebar();
21762179
};
21772180

2178-
if (getCurrentValue("rustdoc-collapse") === "true") {
2179-
toggleAllDocs(getPageId());
2180-
}
2181+
autoCollapse(getPageId(), getCurrentValue("rustdoc-collapse") === "true");
21812182
}());
21822183

21832184
// Sets the focus on the search bar at the top of the page

0 commit comments

Comments
 (0)