aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_passkeys.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-02 10:24:39 +0000
committerStephen Blott2015-01-02 11:01:03 +0000
commit20ebbf3de2384738af916a441470d74a5aca14a3 (patch)
treeb477a0e03097e5368668dbe08a42e48dbd8db132 /content_scripts/mode_passkeys.coffee
parentb5535bc5a1b44c12cff62bac601a8d6ec7e04a6c (diff)
downloadvimium-20ebbf3de2384738af916a441470d74a5aca14a3.tar.bz2
Modes; rework badge handling and fix passkeys mode.
Diffstat (limited to 'content_scripts/mode_passkeys.coffee')
-rw-r--r--content_scripts/mode_passkeys.coffee25
1 files changed, 18 insertions, 7 deletions
diff --git a/content_scripts/mode_passkeys.coffee b/content_scripts/mode_passkeys.coffee
index ce9f25d2..82f7596b 100644
--- a/content_scripts/mode_passkeys.coffee
+++ b/content_scripts/mode_passkeys.coffee
@@ -13,20 +13,31 @@ class PassKeysMode extends Mode
for keyChar in [KeyboardUtils.getKeyChar(event), String.fromCharCode(event.charCode)]
# A key is passed through to the underlying page by returning handlerStack.passDirectlyToPage.
return handlerStack.passDirectlyToPage if keyChar and @isPassKey keyChar
- true
+ Mode.propagate
- setState: (response) ->
- if response.isEnabledForUrl?
- @passKeys = (response.isEnabledForUrl and response.passKeys) or ""
- if response.keyQueue?
- @keyQueue = response.keyQueue
+ # This is called to set the pass-keys state with various types of request from various sources, so we handle
+ # all of these.
+ # TODO(smblott) Rationalize this.
+ setState: (request) ->
+ if request.isEnabledForUrl?
+ @passKeys = (request.isEnabledForUrl and request.passKeys) or ""
+ if request.enabled?
+ @passKeys = (request.enabled and request.passKeys) or ""
+ if request.keyQueue?
+ @keyQueue = request.keyQueue
+ Mode.updateBadge()
constructor: ->
super
name: "passkeys"
keydown: (event) => @handlePassKeyEvent event
keypress: (event) => @handlePassKeyEvent event
- keyup: -> true # Allow event to propagate.
+ keyup: -> Mode.propagate
+
+ # Overriding and re-using updateBadgeForMode() from Mode.updateBadgeForMode().
+ updateBadgeForMode: (badge) ->
+ @badge = if @passKeys and not @keyQueue then "P" else ""
+ super badge
root = exports ? window
root.PassKeysMode = PassKeysMode