From b23bdeda4905b899e5e031e90f714584b1040a4d Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 2 Mar 2013 19:57:26 +0400 Subject: [PATCH] added ability to use actual letters or key names as keys in config... Signed-off-by: Alex A. Naanou --- lib/keyboard.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/keyboard.js b/lib/keyboard.js index ee28c04..58009d9 100755 --- a/lib/keyboard.js +++ b/lib/keyboard.js @@ -40,11 +40,16 @@ function toKeyName(code){ // chars... k = String.fromCharCode(code) if(k != ''){ - return k.toLowerCase() + //return k.toLowerCase() + return k } return null } +function chr(c){ + return c.charCodeAt(0) +} + // if set to false the event handlers will always return false... var KEYBOARD_HANDLER_PROPAGATE = true @@ -89,6 +94,7 @@ function makeKeyboardHandler(keybindings, unhandled){ var bindings = keybindings[mode] var key = evt.keyCode + var chr = toKeyName(evt.keyCode) if(bindings.ignore == '*' || bindings.ignore != null && bindings.ignore.indexOf(key) != -1){ // return true @@ -101,7 +107,11 @@ function makeKeyboardHandler(keybindings, unhandled){ modifers += evt.altKey ? (modifers != '' ? '+alt' : 'alt') : '' modifers += evt.shiftKey ? (modifers != '' ? '+shift' : 'shift') : '' - var handler = bindings[key] + if(chr in bindings){ + var handler = bindings[chr] + } else { + var handler = bindings[key] + } // alias... while (typeof(handler) == typeof(123)) {