Skip to content

Commit 9566db1

Browse files
committed
Fix corner cases when dealing with mobile mode
1 parent 34984a6 commit 9566db1

File tree

4 files changed

+45
-17
lines changed

4 files changed

+45
-17
lines changed

src/librustdoc/html/static/css/rustdoc.css

+9-6
Original file line numberDiff line numberDiff line change
@@ -1560,6 +1560,9 @@ a.tooltip:hover::after {
15601560
left: 8px;
15611561
z-index: 101;
15621562
}
1563+
.hide-sidebar .src #sidebar-button {
1564+
position: static;
1565+
}
15631566
#settings-menu > a, #help-button > a, #sidebar-button > a {
15641567
display: flex;
15651568
align-items: center;
@@ -1896,6 +1899,12 @@ in src-script.js and main.js
18961899
.src .search-form {
18971900
margin-left: 40px;
18981901
}
1902+
.hide-sidebar .search-form {
1903+
margin-left: 32px;
1904+
}
1905+
.hide-sidebar .src .search-form {
1906+
margin-left: 0;
1907+
}
18991908

19001909
.sidebar.shown,
19011910
.src-sidebar-expanded .src .sidebar,
@@ -2020,12 +2029,6 @@ in src-script.js and main.js
20202029
.src .src-sidebar-title {
20212030
padding-top: 0;
20222031
}
2023-
.hide-sidebar #sidebar-button {
2024-
position: static;
2025-
}
2026-
.src #sidebar-button {
2027-
position: fixed;
2028-
}
20292032

20302033
/* Position of the "[-]" element. */
20312034
details.toggle:not(.top-doc) > summary {

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

+7-11
Original file line numberDiff line numberDiff line change
@@ -1519,18 +1519,14 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/read-documentation/search.htm
15191519
// and it can be activated by resizing the sidebar into nothing.
15201520
const sidebarButton = document.getElementById("sidebar-button");
15211521
if (sidebarButton) {
1522-
if (document.querySelector(".rustdoc.src")) {
1523-
sidebarButton.addEventListener("click", e => {
1522+
sidebarButton.addEventListener("click", e => {
1523+
removeClass(document.documentElement, "hide-sidebar");
1524+
updateLocalStorage("hide-sidebar", "false");
1525+
if (document.querySelector(".rustdoc.src")) {
15241526
window.rustdocToggleSrcSidebar();
1525-
e.preventDefault();
1526-
});
1527-
} else {
1528-
sidebarButton.addEventListener("click", e => {
1529-
removeClass(document.documentElement, "hide-sidebar");
1530-
updateLocalStorage("hide-sidebar", "false");
1531-
e.preventDefault();
1532-
});
1533-
}
1527+
}
1528+
e.preventDefault();
1529+
});
15341530
}
15351531

15361532
// Pointer capture.

tests/rustdoc-gui/sidebar-resize-setting.goml

+28
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,31 @@ wait-for-css: ("#settings", {"display": "block"})
2121
assert-property: ("#hide-sidebar", {"checked": "true"})
2222
click: "#hide-sidebar"
2323
wait-for-css: (".sidebar", {"display": "block"})
24+
25+
// Verify that hiding the sidebar hides the source sidebar
26+
// and puts the button in static position mode on mobile
27+
go-to: "file://" + |DOC_PATH| + "/src/test_docs/lib.rs.html"
28+
set-window-size: (600, 600)
29+
focus: "#settings-menu a"
30+
press-key: "Enter"
31+
wait-for-css: ("#settings", {"display": "block"})
32+
wait-for-css: ("#sidebar-button", {"position": "fixed"})
33+
store-position: ("#sidebar-button", {
34+
"y": sidebar_button_y,
35+
"x": sidebar_button_x,
36+
})
37+
assert-property: ("#hide-sidebar", {"checked": "false"})
38+
click: "#hide-sidebar"
39+
wait-for-css: (".sidebar", {"display": "none"})
40+
wait-for-css: ("#sidebar-button", {"position": "static"})
41+
assert-position: ("#sidebar-button", {
42+
"y": |sidebar_button_y|,
43+
"x": |sidebar_button_x|,
44+
})
45+
assert-property: ("#hide-sidebar", {"checked": "true"})
46+
press-key: "Escape"
47+
// Clicking the sidebar button should work, and implicitly re-enable
48+
// the persistent navigation bar
49+
wait-for-css: ("#settings", {"display": "none"})
50+
click: "#sidebar-button"
51+
wait-for-css: (".sidebar", {"display": "block"})

tests/rustdoc-gui/src/theme_css/custom-theme.css

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
--code-attribute-color: #999;
1919
--toggles-color: #999;
2020
--toggle-filter: none;
21+
--mobile-sidebar-menu-filter: none;
2122
--search-input-focused-border-color: #66afe9;
2223
--copy-path-button-color: #999;
2324
--copy-path-img-filter: invert(50%);

0 commit comments

Comments
 (0)