aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_insert.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-02 15:01:32 +0000
committerStephen Blott2015-01-02 15:01:32 +0000
commitb7d5e25e353010505db7754e97d4387c8aa6b8fc (patch)
tree4208ecdda9f53ae22cb8e0d36aa8ffb2910dc9bb /content_scripts/mode_insert.coffee
parentd4c43d8f9095325b41544ad7811cc131c1b186f1 (diff)
downloadvimium-b7d5e25e353010505db7754e97d4387c8aa6b8fc.tar.bz2
Modes; simplify badge handling.
Diffstat (limited to 'content_scripts/mode_insert.coffee')
-rw-r--r--content_scripts/mode_insert.coffee28
1 files changed, 13 insertions, 15 deletions
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index f37cf1ad..9504edfd 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -31,6 +31,17 @@ class InsertMode extends Mode
@activate() if document.activeElement?.isContentEditable
@isInsertMode
+ activate: ->
+ unless @isInsertMode
+ @isInsertMode = true
+ @badge = "I"
+ Mode.updateBadge()
+
+ deactivate: ->
+ @isInsertMode = false
+ @badge = ""
+ Mode.updateBadge()
+
generateKeyHandler: (type) ->
(event) =>
return Mode.propagate unless @isActive()
@@ -43,24 +54,12 @@ class InsertMode extends Mode
# right thing to do for most common use cases. However, it could also cripple flash-based sites and
# games. See discussion in #1211 and #1194.
event.srcElement.blur()
- @isInsertMode = false
- Mode.updateBadge()
+ @deactivate()
Mode.suppressPropagation
- activate: ->
- unless @isInsertMode
- @isInsertMode = true
- Mode.updateBadge()
-
- # Override updateBadgeForMode() from Mode.updateBadgeForMode().
- updateBadgeForMode: (badge) ->
- handlerStack.alwaysPropagate =>
- super badge if @isActive()
-
constructor: ->
super
name: "insert"
- badge: "I"
keydown: @generateKeyHandler "keydown"
keypress: @generateKeyHandler "keypress"
keyup: @generateKeyHandler "keyup"
@@ -73,8 +72,7 @@ class InsertMode extends Mode
blur: (event) =>
handlerStack.alwaysPropagate =>
if @isInsertMode and @isFocusable event.target
- @isInsertMode = false
- Mode.updateBadge()
+ @deactivate()
# We may already have been dropped into insert mode. So check.
Mode.updateBadge()