aboutsummaryrefslogtreecommitdiff
path: root/emccpre.js
diff options
context:
space:
mode:
Diffstat (limited to 'emccpre.js')
-rw-r--r--emccpre.js25
1 files changed, 10 insertions, 15 deletions
diff --git a/emccpre.js b/emccpre.js
index 66e6354..701c7f7 100644
--- a/emccpre.js
+++ b/emccpre.js
@@ -157,26 +157,21 @@ function initPuzzle() {
}
};
- // Set up keyboard handlers. We expect ordinary keys (with a
- // charCode) to be handled by onkeypress, but function keys
- // (arrows etc) to be handled by onkeydown.
- //
- // We also call event.preventDefault() in both handlers. 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, without accidentally reloading the page.
- key = Module.cwrap('key', 'void',
- ['number', 'number', 'number', 'number']);
+ // 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
+ // 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,
+ // without accidentally reloading the page.
+ key = Module.cwrap('key', 'void', ['number', 'number', 'string',
+ 'string', 'number', 'number']);
onscreen_canvas.onkeydown = function(event) {
- key(event.keyCode, event.charCode,
+ key(event.keyCode, event.charCode, event.key, event.char,
event.shiftKey ? 1 : 0, event.ctrlKey ? 1 : 0);
event.preventDefault();
};
onscreen_canvas.onkeypress = function(event) {
- if (event.charCode != 0)
- key(event.keyCode, event.charCode,
- event.shiftKey ? 1 : 0, event.ctrlKey ? 1 : 0);
event.preventDefault();
};