From e79270368b709a7cceb593767b1d0ac9aa9a311f Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 15 Nov 2022 22:17:33 +0000 Subject: [PATCH] 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. --- emccpre.js | 9 +++++++-- 1 file 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