aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_passkeys.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-10 18:53:28 +0000
committerStephen Blott2015-01-10 18:53:28 +0000
commitd1c0a5d9bd1f67f2b32a993cfd62bc0b52c44185 (patch)
tree76eaa3b86be1c6ac130724168d0bf3bbbb6849c5 /content_scripts/mode_passkeys.coffee
parent93de6384632e3e682e02be4cb8cea160997de127 (diff)
parent80ad0bc3087a3bf00d61bdd6c9cf48e971e22480 (diff)
downloadvimium-d1c0a5d9bd1f67f2b32a993cfd62bc0b52c44185.tar.bz2
Merge branch 'modes-dev' into modes
Diffstat (limited to 'content_scripts/mode_passkeys.coffee')
-rw-r--r--content_scripts/mode_passkeys.coffee15
1 files changed, 7 insertions, 8 deletions
diff --git a/content_scripts/mode_passkeys.coffee b/content_scripts/mode_passkeys.coffee
index 972dcad7..c4df06dc 100644
--- a/content_scripts/mode_passkeys.coffee
+++ b/content_scripts/mode_passkeys.coffee
@@ -3,24 +3,23 @@ class PassKeysMode extends Mode
constructor: ->
super
name: "passkeys"
- keydown: (event) => @handlePassKeyEvent event
- keypress: (event) => @handlePassKeyEvent event
trackState: true
+ keydown: (event) => @handleKeyChar KeyboardUtils.getKeyChar event
+ keypress: (event) => @handleKeyChar String.fromCharCode event.charCode
+ keyup: (event) => @handleKeyChar String.fromCharCode event.charCode
# Decide whether this event should be passed to the underlying page. Keystrokes are *never* considered
# passKeys if the keyQueue is not empty. So, for example, if 't' is a passKey, then 'gt' and '99t' will
# neverthless be handled by vimium.
- handlePassKeyEvent: (event) ->
- for keyChar in [KeyboardUtils.getKeyChar(event), String.fromCharCode(event.charCode)]
- return @stopBubblingAndTrue if keyChar and not @keyQueue and 0 <= @passKeys.indexOf(keyChar)
- @continueBubbling
+ handleKeyChar: (keyChar) ->
+ @alwaysContinueBubbling =>
+ event.vimium_suppress_normal_mode = true if keyChar and not @keyQueue and 0 <= @passKeys.indexOf keyChar
configure: (request) ->
@keyQueue = request.keyQueue if request.keyQueue?
chooseBadge: (badge) ->
- @badge = if @passKeys and not @keyQueue then "P" else ""
- super badge
+ badge.badge ||= "P" if @passKeys and not @keyQueue
root = exports ? window
root.PassKeysMode = PassKeysMode