Skip to content

Commit 45de057

Browse files
committed
Rollup merge of rust-lang#49152 - GuillaumeGomez:rustdoc-event-handling, r=QuietMisdreavus
Fix events handling in rustdoc Fixes rust-lang#49075.
2 parents 1f5d31f + 5581aa8 commit 45de057

File tree

1 file changed

+40
-33
lines changed

1 file changed

+40
-33
lines changed

src/librustdoc/html/static/main.js

+40-33
Original file line numberDiff line numberDiff line change
@@ -239,52 +239,59 @@
239239
}
240240
}
241241

242-
function handleShortcut(ev) {
243-
if (document.activeElement.tagName === "INPUT" &&
244-
hasClass(document.getElementById('main'), "hidden")) {
245-
return;
242+
function handleEscape(ev, help) {
243+
hideModal();
244+
var search = document.getElementById("search");
245+
if (!hasClass(help, "hidden")) {
246+
displayHelp(false, ev);
247+
} else if (!hasClass(search, "hidden")) {
248+
ev.preventDefault();
249+
addClass(search, "hidden");
250+
removeClass(document.getElementById("main"), "hidden");
246251
}
252+
defocusSearchBar();
253+
}
247254

255+
function handleShortcut(ev) {
248256
// Don't interfere with browser shortcuts
249257
if (ev.ctrlKey || ev.altKey || ev.metaKey) {
250258
return;
251259
}
252260

253261
var help = document.getElementById("help");
254-
switch (getVirtualKey(ev)) {
255-
case "Escape":
256-
hideModal();
257-
var search = document.getElementById("search");
258-
if (!hasClass(help, "hidden")) {
259-
displayHelp(false, ev);
260-
} else if (!hasClass(search, "hidden")) {
261-
ev.preventDefault();
262-
addClass(search, "hidden");
263-
removeClass(document.getElementById("main"), "hidden");
262+
if (document.activeElement.tagName === "INPUT") {
263+
switch (getVirtualKey(ev)) {
264+
case "Escape":
265+
handleEscape(ev, help);
266+
break;
264267
}
265-
defocusSearchBar();
266-
break;
268+
} else {
269+
switch (getVirtualKey(ev)) {
270+
case "Escape":
271+
handleEscape(ev, help);
272+
break;
267273

268-
case "s":
269-
case "S":
270-
displayHelp(false, ev);
271-
hideModal();
272-
ev.preventDefault();
273-
focusSearchBar();
274-
break;
274+
case "s":
275+
case "S":
276+
displayHelp(false, ev);
277+
hideModal();
278+
ev.preventDefault();
279+
focusSearchBar();
280+
break;
275281

276-
case "+":
277-
case "-":
278-
ev.preventDefault();
279-
toggleAllDocs();
280-
break;
282+
case "+":
283+
case "-":
284+
ev.preventDefault();
285+
toggleAllDocs();
286+
break;
281287

282-
case "?":
283-
if (ev.shiftKey) {
284-
hideModal();
285-
displayHelp(true, ev);
288+
case "?":
289+
if (ev.shiftKey) {
290+
hideModal();
291+
displayHelp(true, ev);
292+
}
293+
break;
286294
}
287-
break;
288295
}
289296
}
290297

0 commit comments

Comments
 (0)