ref: e6faebeb9a1856c9ea7140eb650b48ada0adc923
parent: 43c89dd5e118cf244b8eb978b13fecfe2240e9e7
author: Ben Harris <[email protected]>
date: Tue Oct 25 06:24:15 EDT 2022
js: Remove keypress handler At least in modern browsers (and I suspect in all browsers), cancelling a keydown event ensures that the subsequent keypress event doesn't fire. See <https://w3c.github.io/uievents/#keys-cancelable-keys>. So there's no point in having a handler on keypress events that just tries to cancel them as well. Removing the handler doesn't do much now, but it opens the possibility of being a bit more selective about which keydown events we cancel.
--- a/emccpre.js
+++ b/emccpre.js
@@ -304,9 +304,8 @@
}
};
- // Set up keyboard handlers. We do all the actual keyboard
- // handling in onkeydown; but we also call event.preventDefault()
- // in both the keydown and keypress handlers. This means that
+ // Set up keyboard handlers. We call event.preventDefault()
+ // in the keydown handler. This means that
// while the canvas itself has focus, _all_ keypresses go only to
// the puzzle - so users of this puzzle collection in other media
// can indulge their instinct to press ^R for redo, for example,
@@ -316,9 +315,6 @@
onscreen_canvas.onkeydown = function(event) {
key(event.keyCode, event.key, event.char, event.location,
event.shiftKey ? 1 : 0, event.ctrlKey ? 1 : 0);
- event.preventDefault();
- };
- onscreen_canvas.onkeypress = function(event) {
event.preventDefault();
};