shithub: puzzles

Download patch

ref: e79270368b709a7cceb593767b1d0ac9aa9a311f
parent: 2d439dd00ed41c697a917c7445e143ae10ff5e74
author: Ben Harris <bjh21@bjh21.me.uk>
date: Tue Nov 15 17:17:33 EST 2022

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.

--- a/emccpre.js
+++ b/emccpre.js
@@ -519,11 +519,16 @@
             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