aboutsummaryrefslogtreecommitdiff
path: root/emccpre.js
diff options
context:
space:
mode:
authorBen Harris <bjh21@bjh21.me.uk>2022-11-15 22:17:33 +0000
committerBen Harris <bjh21@bjh21.me.uk>2022-11-23 21:56:42 +0000
commite79270368b709a7cceb593767b1d0ac9aa9a311f (patch)
tree760e66b5665360e2e45578d383c01d737b506b3f /emccpre.js
parent2d439dd00ed41c697a917c7445e143ae10ff5e74 (diff)
downloadpuzzles-e79270368b709a7cceb593767b1d0ac9aa9a311f.zip
puzzles-e79270368b709a7cceb593767b1d0ac9aa9a311f.tar.gz
puzzles-e79270368b709a7cceb593767b1d0ac9aa9a311f.tar.bz2
puzzles-e79270368b709a7cceb593767b1d0ac9aa9a311f.tar.xz
js: Move global keyboard handler to capturing phase
In the bubbling phase it managed to catch the "Enter" keypress that opened a dialogue box from the menu and use it to close the dialogue box again. I think it's probably reasonable to have it run earlier and just permanently steal any keypresses it wants.
Diffstat (limited to 'emccpre.js')
-rw-r--r--emccpre.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/emccpre.js b/emccpre.js
index f87b576..cf01c51 100644
--- a/emccpre.js
+++ b/emccpre.js
@@ -519,11 +519,16 @@ function initPuzzle() {
for (var i in dlg_return_funcs)
dlg_return_funcs[i]();
command(3);
+ event.preventDefault();
+ event.stopPropagation();
}
- if (dlg_dimmer !== null && event.keyCode == 27)
+ if (dlg_dimmer !== null && event.keyCode == 27) {
command(4);
- });
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }, true);
// Event handler to fake :focus-within on browsers too old for
// it (like KaiOS 2.5). Browsers without :focus-within are also