aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2015-01-02 13:22:31 +0000
committerStephen Blott2015-01-02 13:23:32 +0000
commitb179d80ac9c35eb85de3995e4c4fb7dc9945ed75 (patch)
tree99d96777f6a175c396ac132dca16526c5f96f1e6
parent298ee34b1c90b0203a74a2d158858428475bfd95 (diff)
downloadvimium-b179d80ac9c35eb85de3995e4c4fb7dc9945ed75.tar.bz2
Modes; fix badges.
-rw-r--r--background_scripts/main.coffee1
-rw-r--r--content_scripts/mode.coffee3
-rw-r--r--content_scripts/mode_insert.coffee7
-rw-r--r--content_scripts/mode_passkeys.coffee7
-rw-r--r--content_scripts/vimium_frontend.coffee7
5 files changed, 12 insertions, 13 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 3ce05a49..fc0a792f 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -373,6 +373,7 @@ root.updateActiveState = updateActiveState = (tabId) ->
else
# We didn't get a response from the front end, so Vimium isn't running.
setBrowserActionIcon(tabId,disabledIcon)
+ setBadge {badge: ""}
handleUpdateScrollPosition = (request, sender) ->
updateScrollPosition(sender.tab, request.scrollX, request.scrollY)
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee
index 468f587a..9016caa2 100644
--- a/content_scripts/mode.coffee
+++ b/content_scripts/mode.coffee
@@ -56,8 +56,7 @@ class Mode
# Default updateBadgeForMode handler. This is overridden by sub-classes. The default is to install the
# current mode's badge, unless the bade is already set.
updateBadgeForMode: (badge) ->
- badge.badge ||= @badge
- Mode.propagate
+ handlerStack.alwaysPropagate => badge.badge ||= @badge
# Static method. Used externally and internally to initiate bubbling of an updateBadgeForMode event.
@updateBadge: ->
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index c8b05217..f37cf1ad 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -52,11 +52,10 @@ class InsertMode extends Mode
@isInsertMode = true
Mode.updateBadge()
- # Override (and re-use) updateBadgeForMode() from Mode.updateBadgeForMode(). Use insert-mode badge only if
- # we're active and no mode higher in stack has already inserted a badge.
+ # Override updateBadgeForMode() from Mode.updateBadgeForMode().
updateBadgeForMode: (badge) ->
- @badge = if @isActive() then "I" else ""
- super badge
+ handlerStack.alwaysPropagate =>
+ super badge if @isActive()
constructor: ->
super
diff --git a/content_scripts/mode_passkeys.coffee b/content_scripts/mode_passkeys.coffee
index 6320c698..bb4518ae 100644
--- a/content_scripts/mode_passkeys.coffee
+++ b/content_scripts/mode_passkeys.coffee
@@ -33,14 +33,15 @@ class PassKeysMode extends Mode
constructor: ->
super
name: "passkeys"
+ badge: "P"
keydown: (event) => @handlePassKeyEvent event
keypress: (event) => @handlePassKeyEvent event
keyup: -> Mode.propagate
- # Overriding and re-using updateBadgeForMode() from Mode.updateBadgeForMode().
+ # Overriding updateBadgeForMode() from Mode.updateBadgeForMode().
updateBadgeForMode: (badge) ->
- @badge = if @passKeys and not @keyQueue then "P" else ""
- super badge
+ handlerStack.alwaysPropagate =>
+ super badge if @passKeys and not @keyQueue
root = exports ? window
root.PassKeysMode = PassKeysMode
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index da1f5de1..6d63b24a 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -124,9 +124,9 @@ initializePreDomReady = ->
# Overriding updateBadgeForMode() from Mode.updateBadgeForMode().
updateBadgeForMode: (badge) ->
- badge.badge ||= @badge
- badge.badge = "" unless isEnabledForUrl
- Mode.propagate # Not really necessary, but makes intention clear and does no harm.
+ handlerStack.alwaysPropagate =>
+ badge.badge ||= @badge
+ badge.badge = "" unless isEnabledForUrl
# Initialize the scroller. The scroller install a key handler, and this is next on the handler stack,
# immediately above normal mode.
@@ -686,7 +686,6 @@ updateFindModeQuery = ->
findModeQuery.matchCount = text.match(pattern)?.length
handleKeyCharForFindMode = (keyChar) ->
- console.log "xxxxxxxxxxxxxxx"
findModeQuery.rawQuery += keyChar
updateFindModeQuery()
performFindInPlace()