diff --git a/lib/std/special/docs/main.js b/lib/std/special/docs/main.js index 409fc7322b..58c956b3f1 100644 --- a/lib/std/special/docs/main.js +++ b/lib/std/special/docs/main.js @@ -1141,10 +1141,8 @@ } function onSearchKeyDown(ev) { - switch (ev.which) { - case 13: - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; - + switch (getKeyString(ev)) { + case "Enter": // detect if this search changes anything var terms1 = getSearchTerms(); startSearch(); @@ -1157,9 +1155,7 @@ ev.preventDefault(); ev.stopPropagation(); return; - case 27: - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; - + case "Esc": domSearch.value = ""; domSearch.blur(); curSearchIndex = -1; @@ -1167,16 +1163,12 @@ ev.stopPropagation(); startSearch(); return; - case 38: - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; - + case "Up": moveSearchCursor(-1); ev.preventDefault(); ev.stopPropagation(); return; - case 40: - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; - + case "Down": moveSearchCursor(1); ev.preventDefault(); ev.stopPropagation(); @@ -1210,21 +1202,35 @@ renderSearchCursor(); } - function getKeyValue(ev) { - if("key" in ev && typeof ev.key != "undefined") { - return ev.key - } - var code = ev.charCode || ev.keyCode; - if(code == 27) { - return "Escape" - } - return String.fromCharCode(code) + function getKeyString(ev) { + var name; + var ignoreShift = false; + switch (ev.which) { + case 13: + name = "Enter"; + break; + case 27: + name = "Esc"; + break; + case 38: + name = "Up"; + break; + case 40: + name = "Down"; + break; + default: + ignoreShift = true; + name = (ev.key != null) ? ev.key : String.fromCharCode(ev.charCode || ev.keyCode); + } + if (!ignoreShift && ev.shiftKey) name = "Shift+" + name; + if (ev.altKey) name = "Alt+" + name; + if (ev.ctrlKey) name = "Ctrl+" + name; + return name; } function onWindowKeyDown(ev) { - switch (getKeyValue(ev)) { - case "Escape": - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; + switch (getKeyString(ev)) { + case "Esc": if (!domHelpModal.classList.contains("hidden")) { domHelpModal.classList.add("hidden"); ev.preventDefault(); @@ -1232,7 +1238,6 @@ } break; case "s": - if (ev.shiftKey || ev.ctrlKey || ev.altKey) return; domSearch.focus(); domSearch.select(); ev.preventDefault(); @@ -1240,7 +1245,6 @@ startAsyncSearch(); break; case "?": - if (!ev.shiftKey || ev.ctrlKey || ev.altKey) return; ev.preventDefault(); ev.stopPropagation(); showHelpModal();