diff options
| author | Stephen Blott | 2016-02-18 10:29:51 +0000 |
|---|---|---|
| committer | Stephen Blott | 2016-02-18 10:29:51 +0000 |
| commit | f91fb7b9e11095cbb59174601096f0239501f6a0 (patch) | |
| tree | d0ac44c1ee050c256e3e03de244a3b0efb50d02f /lib | |
| parent | 8e3ac1867b7577814865bf1cb40d0b865de30b1a (diff) | |
| parent | 38509ce26afd1df7288255bfbcae1705f7bf9d86 (diff) | |
| download | vimium-f91fb7b9e11095cbb59174601096f0239501f6a0.tar.bz2 | |
Merge pull request #1985 from smblott-github/pass-next-key
New command: Pass next key
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/keyboard_utils.coffee | 28 | ||||
| -rw-r--r-- | lib/settings.coffee | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index f123f75a..10b5f46e 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -66,6 +66,34 @@ KeyboardUtils = @getKeyChar event keyChar.length == 1 + # Return the Vimium key representation for this keyboard event. Return a falsy value (the empty string or + # undefined) when no Vimium representation is appropriate. + getKeyCharString: (event) -> + switch event.type + when "keypress" + # Ignore modifier keys by themselves. + if 31 < event.keyCode + String.fromCharCode event.charCode + + when "keydown" + # handle special keys, and normal input keys with modifiers being pressed. don't handle shiftKey alone (to + # avoid / being interpreted as ? + if (((event.metaKey || event.ctrlKey || event.altKey) && event.keyCode > 31) || ( + # TODO(philc): some events don't have a keyidentifier. How is that possible? + event.keyIdentifier && event.keyIdentifier.slice(0, 2) != "U+")) + keyChar = @getKeyChar event + # Again, ignore just modifiers. Maybe this should replace the keyCode>31 condition. + if 0 < keyChar.length + modifiers = [] + + keyChar = keyChar.toUpperCase() if event.shiftKey + modifiers.push "m" if event.metaKey + modifiers.push "c" if event.ctrlKey + modifiers.push "a" if event.altKey + + keyChar = [modifiers..., keyChar].join "-" + if 1 < keyChar.length then "<#{keyChar}>" else keyChar + KeyboardUtils.init() root = exports ? window diff --git a/lib/settings.coffee b/lib/settings.coffee index 31aad7ad..79ee04a9 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -174,6 +174,7 @@ Settings = settingsVersion: Utils.getCurrentVersion() helpDialog_showAdvancedCommands: false optionsPage_showAdvancedOptions: false + passNextKeyKeys: [] Settings.init() |
