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