authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-15 18:37:09-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-15 18:37:24-04:00
loge6ca61bdd1031f13bd98bfe60bac6ef36f2cebbd
tree685dc6cb982b6aaf29d801f505426af4621f0cb2
parent725c873e81460ce2b19bde98fae4473e4321c9fb
signaturelock-open Commit is signed but in an unrecognized format.

generated docs: further clean up keyboard shortcut handling

now it's harder to introduce a bug when modifying keyboard shortcut code.

1 files changed, 31 insertions(+), 27 deletions(-)

lib/std/special/docs/main.js+31-27
......@@ -1141,10 +1141,8 @@
11411141 }
11421142
11431143 function onSearchKeyDown(ev) {
1144 switch (ev.which) {
1145 case 13:
1146 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1147
1144 switch (getKeyString(ev)) {
1145 case "Enter":
11481146 // detect if this search changes anything
11491147 var terms1 = getSearchTerms();
11501148 startSearch();
......@@ -1157,9 +1155,7 @@
11571155 ev.preventDefault();
11581156 ev.stopPropagation();
11591157 return;
1160 case 27:
1161 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1162
1158 case "Esc":
11631159 domSearch.value = "";
11641160 domSearch.blur();
11651161 curSearchIndex = -1;
......@@ -1167,16 +1163,12 @@
11671163 ev.stopPropagation();
11681164 startSearch();
11691165 return;
1170 case 38:
1171 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1172
1166 case "Up":
11731167 moveSearchCursor(-1);
11741168 ev.preventDefault();
11751169 ev.stopPropagation();
11761170 return;
1177 case 40:
1178 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1179
1171 case "Down":
11801172 moveSearchCursor(1);
11811173 ev.preventDefault();
11821174 ev.stopPropagation();
......@@ -1210,21 +1202,35 @@
12101202 renderSearchCursor();
12111203 }
12121204
1213 function getKeyValue(ev) {
1214 if("key" in ev && typeof ev.key != "undefined") {
1215 return ev.key
1216 }
1217 var code = ev.charCode || ev.keyCode;
1218 if(code == 27) {
1219 return "Escape"
1220 }
1221 return String.fromCharCode(code)
1205 function getKeyString(ev) {
1206 var name;
1207 var ignoreShift = false;
1208 switch (ev.which) {
1209 case 13:
1210 name = "Enter";
1211 break;
1212 case 27:
1213 name = "Esc";
1214 break;
1215 case 38:
1216 name = "Up";
1217 break;
1218 case 40:
1219 name = "Down";
1220 break;
1221 default:
1222 ignoreShift = true;
1223 name = (ev.key != null) ? ev.key : String.fromCharCode(ev.charCode || ev.keyCode);
1224 }
1225 if (!ignoreShift && ev.shiftKey) name = "Shift+" + name;
1226 if (ev.altKey) name = "Alt+" + name;
1227 if (ev.ctrlKey) name = "Ctrl+" + name;
1228 return name;
12221229 }
12231230
12241231 function onWindowKeyDown(ev) {
1225 switch (getKeyValue(ev)) {
1226 case "Escape":
1227 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1232 switch (getKeyString(ev)) {
1233 case "Esc":
12281234 if (!domHelpModal.classList.contains("hidden")) {
12291235 domHelpModal.classList.add("hidden");
12301236 ev.preventDefault();
......@@ -1232,7 +1238,6 @@
12321238 }
12331239 break;
12341240 case "s":
1235 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
12361241 domSearch.focus();
12371242 domSearch.select();
12381243 ev.preventDefault();
......@@ -1240,7 +1245,6 @@
12401245 startAsyncSearch();
12411246 break;
12421247 case "?":
1243 if (!ev.shiftKey || ev.ctrlKey || ev.altKey) return;
12441248 ev.preventDefault();
12451249 ev.stopPropagation();
12461250 showHelpModal();