Skip to content

Commit 800dab0

Browse files
committed
rustdoc: fix janky behavior on iPadOS
1 parent 32b9253 commit 800dab0

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

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

+9-4
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ img {
407407
}
408408

409409
.sidebar-resizer {
410+
touch-action: none;
410411
width: 9px;
411412
cursor: col-resize;
412413
z-index: 10;
@@ -417,12 +418,14 @@ img {
417418
}
418419

419420
.rustdoc.src .sidebar-resizer {
420-
/* when closed, place resizer glow on top of the normal src sidebar border (no need to worry about sidebar) */
421+
/* when closed, place resizer glow on top of the normal src sidebar border (no need to worry
422+
about sidebar) */
421423
left: 49px;
422424
}
423425

424426
.src-sidebar-expanded .rustdoc.src .sidebar-resizer {
425-
/* for src sidebar, gap is already provided by 1px border on sidebar itself, so place resizer to right of it */
427+
/* for src sidebar, gap is already provided by 1px border on sidebar itself, so place resizer
428+
to right of it */
426429
left: var(--src-sidebar-width, 300px);
427430
}
428431

@@ -443,7 +446,8 @@ img {
443446
.sidebar-resizer.active {
444447
width: 10px;
445448
margin: 0;
446-
/* when active or hovered, place resizer glow on top of the sidebar (right next to, or even on top of, the scrollbar) */
449+
/* when active or hovered, place resizer glow on top of the sidebar (right next to, or even
450+
on top of, the scrollbar) */
447451
left: var(--desktop-sidebar-width, 200px);
448452
border-left: solid 1px var(--sidebar-resizer-hover);
449453
}
@@ -457,7 +461,8 @@ img {
457461
}
458462

459463
.sidebar-resizer.active {
460-
/* make the resize tool bigger when actually resizing, to avoid :hover styles on other stuff while resizing */
464+
/* make the resize tool bigger when actually resizing, to avoid :hover styles on other stuff
465+
while resizing */
461466
padding: 0 140px;
462467
width: 2px;
463468
margin-left: -140px;

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

+10-6
Original file line numberDiff line numberDiff line change
@@ -1280,6 +1280,7 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/how-to-read-rustdoc.html\
12801280
hasClass(document.documentElement, "hide-sidebar");
12811281
};
12821282
const resize = e => {
1283+
e.preventDefault();
12831284
const pos = e.clientX - sidebar.offsetLeft - 3;
12841285
if (pos < 50) {
12851286
hideSidebar();
@@ -1292,22 +1293,25 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/how-to-read-rustdoc.html\
12921293
changeSidebarSize(Math.min(pos, window.innerWidth - 100));
12931294
}
12941295
};
1295-
const stopResize = () => {
1296+
const stopResize = e => {
1297+
e.preventDefault();
12961298
removeClass(resizer, "active");
1297-
window.removeEventListener("mousemove", resize, false);
1298-
window.removeEventListener("mouseup", stopResize, false);
1299+
window.removeEventListener("pointermove", resize, false);
1300+
window.removeEventListener("pointerup", stopResize, false);
12991301
removeClass(document.documentElement, "sidebar-resizing");
13001302
};
13011303
const initResize = e => {
1304+
e.preventDefault();
13021305
if (e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) {
13031306
return;
13041307
}
1305-
window.addEventListener("mousemove", resize, false);
1306-
window.addEventListener("mouseup", stopResize, false);
1308+
window.addEventListener("pointermove", resize, false);
1309+
window.addEventListener("pointercancel", stopResize, false);
1310+
window.addEventListener("pointerup", stopResize, false);
13071311
addClass(resizer, "active");
13081312
addClass(document.documentElement, "sidebar-resizing");
13091313
};
1310-
resizer.addEventListener("mousedown", initResize, false);
1314+
resizer.addEventListener("pointerdown", initResize, false);
13111315
}());
13121316

13131317
(function() {

src/librustdoc/html/static/js/storage.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -196,14 +196,14 @@ if (getSettingValue("hide-sidebar") === "true") {
196196

197197
function updateSidebarWidth() {
198198
const desktopSidebarWidth = getSettingValue("desktop-sidebar-width");
199-
if (desktopSidebarWidth) {
199+
if (desktopSidebarWidth && desktopSidebarWidth !== "null") {
200200
document.documentElement.style.setProperty(
201201
"--desktop-sidebar-width",
202202
desktopSidebarWidth + "px"
203203
);
204204
}
205205
const srcSidebarWidth = getSettingValue("src-sidebar-width");
206-
if (srcSidebarWidth) {
206+
if (srcSidebarWidth && srcSidebarWidth !== "null") {
207207
document.documentElement.style.setProperty(
208208
"--src-sidebar-width",
209209
srcSidebarWidth + "px"

0 commit comments

Comments
 (0)