Skip to content

Commit bcf57d8

Browse files
Fix escape key handling
1 parent 698c5c6 commit bcf57d8

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/librustdoc/html/static/main.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ function getSearchElement() {
8181

8282
var disableShortcuts = getCurrentValue("rustdoc-disable-shortcuts") === "true";
8383
var search_input = getSearchInput();
84+
var searchTimeout = null;
8485

8586
// On the search screen, so you remain on the last tab you opened.
8687
//
@@ -344,6 +345,10 @@ function getSearchElement() {
344345
if (hasClass(help, "hidden") === false) {
345346
displayHelp(false, ev, help);
346347
} else if (hasClass(search, "hidden") === false) {
348+
if (searchTimeout !== null) {
349+
clearTimeout(searchTimeout);
350+
searchTimeout = null;
351+
}
347352
ev.preventDefault();
348353
hideSearchResults(search);
349354
document.title = titleBeforeSearch;
@@ -1799,7 +1804,6 @@ function getSearchElement() {
17991804
}
18001805

18011806
function startSearch() {
1802-
var searchTimeout;
18031807
var callback = function() {
18041808
clearTimeout(searchTimeout);
18051809
if (search_input.value.length === 0) {
@@ -1815,7 +1819,10 @@ function getSearchElement() {
18151819
search_input.oninput = callback;
18161820
document.getElementsByClassName("search-form")[0].onsubmit = function(e) {
18171821
e.preventDefault();
1818-
clearTimeout(searchTimeout);
1822+
if (searchTimeout !== null) {
1823+
clearTimeout(searchTimeout);
1824+
searchTimeout = null;
1825+
}
18191826
search();
18201827
};
18211828
search_input.onchange = function(e) {
@@ -1824,7 +1831,10 @@ function getSearchElement() {
18241831
return;
18251832
}
18261833
// Do NOT e.preventDefault() here. It will prevent pasting.
1827-
clearTimeout(searchTimeout);
1834+
if (searchTimeout !== null) {
1835+
clearTimeout(searchTimeout);
1836+
searchTimeout = null;
1837+
}
18281838
// zero-timeout necessary here because at the time of event handler execution the
18291839
// pasted content is not in the input field yet. Shouldn’t make any difference for
18301840
// change, though.

0 commit comments

Comments
 (0)