diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/keyboard_utils.coffee | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index dc6b6269..471e18c9 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -19,8 +19,15 @@ KeyboardUtils =      unless Settings.get "ignoreKeyboardLayout"        key = event.key      else +      # The logic here is from the vim-like-key-notation project (https://github.com/lydell/vim-like-key-notation).        key = event.code +      # Strip some standard prefixes.        key = key[3..] if key[...3] == "Key" +      key = key[5..] if key[...5] == "Digit" +      key = key[6..] if key[...6] == "Numpad" +      # Translate some special keys to event.key-like strings. +      if @enUsTranslations[key] +        key = if event.shift then @enUsTranslations[key][1] else @enUsTranslations[key][0]        key = key.toLowerCase() unless event.shiftKey      if key of @keyNames @@ -62,6 +69,21 @@ KeyboardUtils =    isPrintable: (event) ->      @getKeyCharString(event)?.length == 1 +  enUsTranslations: +    "Backquote":     ["`", "~"] +    "Minus":         ["-", "_"] +    "Equal":         ["=", "+"] +    "Backslash":     ["\\","|"] +    "IntlBackslash": ["\\","|"] +    "BracketLeft":   ["[", "{"] +    "BracketRight":  ["]", "}"] +    "Semicolon":     [";", ":"] +    "Quote":         ["'", '"'] +    "Comma":         [",", "<"] +    "Period":        [".", ">"] +    "Slash":         ["/", "?"] +    "Space":         [" ", " "] +  KeyboardUtils.init()  root = exports ? window | 
