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 @@...@@ -1141,10 +1141,8 @@
1141 }1141 }
11421142
1143 function onSearchKeyDown(ev) {1143 function onSearchKeyDown(ev) {
1144 switch (ev.which) {1144 switch (getKeyString(ev)) {
1145 case 13:1145 case "Enter":
1146 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1147
1148 // detect if this search changes anything1146 // detect if this search changes anything
1149 var terms1 = getSearchTerms();1147 var terms1 = getSearchTerms();
1150 startSearch();1148 startSearch();
...@@ -1157,9 +1155,7 @@...@@ -1157,9 +1155,7 @@
1157 ev.preventDefault();1155 ev.preventDefault();
1158 ev.stopPropagation();1156 ev.stopPropagation();
1159 return;1157 return;
1160 case 27:1158 case "Esc":
1161 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1162
1163 domSearch.value = "";1159 domSearch.value = "";
1164 domSearch.blur();1160 domSearch.blur();
1165 curSearchIndex = -1;1161 curSearchIndex = -1;
...@@ -1167,16 +1163,12 @@...@@ -1167,16 +1163,12 @@
1167 ev.stopPropagation();1163 ev.stopPropagation();
1168 startSearch();1164 startSearch();
1169 return;1165 return;
1170 case 38:1166 case "Up":
1171 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1172
1173 moveSearchCursor(-1);1167 moveSearchCursor(-1);
1174 ev.preventDefault();1168 ev.preventDefault();
1175 ev.stopPropagation();1169 ev.stopPropagation();
1176 return;1170 return;
1177 case 40:1171 case "Down":
1178 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1179
1180 moveSearchCursor(1);1172 moveSearchCursor(1);
1181 ev.preventDefault();1173 ev.preventDefault();
1182 ev.stopPropagation();1174 ev.stopPropagation();
...@@ -1210,21 +1202,35 @@...@@ -1210,21 +1202,35 @@
1210 renderSearchCursor();1202 renderSearchCursor();
1211 }1203 }
12121204
1213 function getKeyValue(ev) {1205 function getKeyString(ev) {
1214 if("key" in ev && typeof ev.key != "undefined") {1206 var name;
1215 return ev.key1207 var ignoreShift = false;
1216 }1208 switch (ev.which) {
1217 var code = ev.charCode || ev.keyCode;1209 case 13:
1218 if(code == 27) {1210 name = "Enter";
1219 return "Escape"1211 break;
1220 }1212 case 27:
1221 return String.fromCharCode(code)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;
1222 }1229 }
1223 1230
1224 function onWindowKeyDown(ev) {1231 function onWindowKeyDown(ev) {
1225 switch (getKeyValue(ev)) {1232 switch (getKeyString(ev)) {
1226 case "Escape":1233 case "Esc":
1227 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1228 if (!domHelpModal.classList.contains("hidden")) {1234 if (!domHelpModal.classList.contains("hidden")) {
1229 domHelpModal.classList.add("hidden");1235 domHelpModal.classList.add("hidden");
1230 ev.preventDefault();1236 ev.preventDefault();
...@@ -1232,7 +1238,6 @@...@@ -1232,7 +1238,6 @@
1232 }1238 }
1233 break;1239 break;
1234 case "s":1240 case "s":
1235 if (ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1236 domSearch.focus();1241 domSearch.focus();
1237 domSearch.select();1242 domSearch.select();
1238 ev.preventDefault();1243 ev.preventDefault();
...@@ -1240,7 +1245,6 @@...@@ -1240,7 +1245,6 @@
1240 startAsyncSearch();1245 startAsyncSearch();
1241 break;1246 break;
1242 case "?":1247 case "?":
1243 if (!ev.shiftKey || ev.ctrlKey || ev.altKey) return;
1244 ev.preventDefault();1248 ev.preventDefault();
1245 ev.stopPropagation();1249 ev.stopPropagation();
1246 showHelpModal();1250 showHelpModal();