diff options
| author | kennytm <kennytm@gmail.com> | 2018-03-20 07:15:28 +0800 |
|---|---|---|
| committer | kennytm <kennytm@gmail.com> | 2018-03-20 11:39:40 +0800 |
| commit | 45de0577275da36494d340e4935df569e77127d3 (patch) | |
| tree | 68a099b51521593b290049cb703a6efb12d58622 /src | |
| parent | 1f5d31f8db456228a8aee430ce00dd969d740144 (diff) | |
| parent | 5581aa8eebba270cde4e95d2e2b7f08163ae7319 (diff) | |
| download | rust-45de0577275da36494d340e4935df569e77127d3.tar.gz rust-45de0577275da36494d340e4935df569e77127d3.zip | |
Rollup merge of #49152 - GuillaumeGomez:rustdoc-event-handling, r=QuietMisdreavus
Fix events handling in rustdoc Fixes #49075.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/static/main.js | 73 |
1 files changed, 40 insertions, 33 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 28d39cb174a..21c1d9d670d 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -239,52 +239,59 @@ } } - function handleShortcut(ev) { - if (document.activeElement.tagName === "INPUT" && - hasClass(document.getElementById('main'), "hidden")) { - return; + function handleEscape(ev, help) { + hideModal(); + var search = document.getElementById("search"); + if (!hasClass(help, "hidden")) { + displayHelp(false, ev); + } else if (!hasClass(search, "hidden")) { + ev.preventDefault(); + addClass(search, "hidden"); + removeClass(document.getElementById("main"), "hidden"); } + defocusSearchBar(); + } + function handleShortcut(ev) { // Don't interfere with browser shortcuts if (ev.ctrlKey || ev.altKey || ev.metaKey) { return; } var help = document.getElementById("help"); - switch (getVirtualKey(ev)) { - case "Escape": - hideModal(); - var search = document.getElementById("search"); - if (!hasClass(help, "hidden")) { - displayHelp(false, ev); - } else if (!hasClass(search, "hidden")) { - ev.preventDefault(); - addClass(search, "hidden"); - removeClass(document.getElementById("main"), "hidden"); + if (document.activeElement.tagName === "INPUT") { + switch (getVirtualKey(ev)) { + case "Escape": + handleEscape(ev, help); + break; } - defocusSearchBar(); - break; + } else { + switch (getVirtualKey(ev)) { + case "Escape": + handleEscape(ev, help); + break; - case "s": - case "S": - displayHelp(false, ev); - hideModal(); - ev.preventDefault(); - focusSearchBar(); - break; + case "s": + case "S": + displayHelp(false, ev); + hideModal(); + ev.preventDefault(); + focusSearchBar(); + break; - case "+": - case "-": - ev.preventDefault(); - toggleAllDocs(); - break; + case "+": + case "-": + ev.preventDefault(); + toggleAllDocs(); + break; - case "?": - if (ev.shiftKey) { - hideModal(); - displayHelp(true, ev); + case "?": + if (ev.shiftKey) { + hideModal(); + displayHelp(true, ev); + } + break; } - break; } } |
