aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emccpre.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/emccpre.js b/emccpre.js
index cf01c51..e5cbb05 100644
--- a/emccpre.js
+++ b/emccpre.js
@@ -458,7 +458,8 @@ function initPuzzle() {
var cs = window.getComputedStyle(menu);
return cs.display == "flex" && cs.flexDirection == "row";
}
- if (!["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Enter"]
+ if (!["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Enter",
+ "Escape", "Backspace", "SoftRight"]
.includes(event.key))
return;
if (ishorizontal(thismenu)) {
@@ -494,11 +495,17 @@ function initPuzzle() {
else if (event.key == "ArrowLeft")
targetitem = parentitem_sideways ||
(parentitem_up && prevmenuitem(parentitem_up));
+ else if (event.key == "Backspace")
+ targetitem = parentitem;
}
if (targetitem)
targetitem.firstElementChild.focus();
else if (event.key == "Enter")
event.target.click();
+ else if (event.key == "Escape" || event.key == "SoftRight" ||
+ event.key == "Backspace")
+ // Leave the menu entirely.
+ onscreen_canvas.focus();
// Prevent default even if we didn't do anything, as long as this
// was an interesting key.
event.preventDefault();