diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/docs/main.js | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/lib/docs/main.js b/lib/docs/main.js index 3072918b32..57cdd3c513 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -3148,6 +3148,22 @@ var zigAnalysis; domSearch.blur(); } + function onEscape(ev) { + if (!domHelpModal.classList.contains("hidden")) { + domHelpModal.classList.add("hidden"); + ev.preventDefault(); + ev.stopPropagation(); + } else { + domSearch.value = ""; + domSearch.blur(); + domSearchPlaceholder.classList.remove("hidden"); + curSearchIndex = -1; + ev.preventDefault(); + ev.stopPropagation(); + startSearch(); + } + } + function onSearchKeyDown(ev) { switch (getKeyString(ev)) { case "Enter": @@ -3164,13 +3180,8 @@ var zigAnalysis; ev.stopPropagation(); return; case "Esc": - domSearch.value = ""; - domSearch.blur(); - curSearchIndex = -1; - ev.preventDefault(); - ev.stopPropagation(); - startSearch(); - return; + onEscape(ev); + return case "Up": moveSearchCursor(-1); ev.preventDefault(); @@ -3245,19 +3256,18 @@ var zigAnalysis; function onWindowKeyDown(ev) { switch (getKeyString(ev)) { case "Esc": - if (!domHelpModal.classList.contains("hidden")) { - domHelpModal.classList.add("hidden"); + onEscape(ev); + break; + case "s": + if (domHelpModal.classList.contains("hidden")) { + // TODO: scroll the page to the very top + domSearch.focus(); + domSearch.select(); ev.preventDefault(); ev.stopPropagation(); + startAsyncSearch(); } break; - case "s": - domSearch.focus(); - domSearch.select(); - ev.preventDefault(); - ev.stopPropagation(); - startAsyncSearch(); - break; case "?": ev.preventDefault(); ev.stopPropagation(); @@ -3273,6 +3283,7 @@ var zigAnalysis; domHelpModal.style.top = window.innerHeight / 2 - domHelpModal.clientHeight / 2 + "px"; domHelpModal.focus(); + domSearch.blur(); } function clearAsyncSearch() { |
