Commit e6ca61bdd1
Changed files (1)
lib
std
special
docs
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();