aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_insert.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-14 12:43:41 +0000
committerStephen Blott2015-01-14 13:31:29 +0000
commit3e0378d0bc5d85ffec0ef49f7c421edbe9c073ec (patch)
tree9198362c577df8f90f76791ef4471cd6ba51596a /content_scripts/mode_insert.coffee
parent9b0a48955c61c262cc4428b2360938d4b54d2d41 (diff)
downloadvimium-3e0378d0bc5d85ffec0ef49f7c421edbe9c073ec.tar.bz2
Modes; rework PostFindMode (again).
Diffstat (limited to 'content_scripts/mode_insert.coffee')
-rw-r--r--content_scripts/mode_insert.coffee13
1 files changed, 7 insertions, 6 deletions
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index 4be9c589..89077c6a 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -1,6 +1,11 @@
class InsertMode extends Mode
+ # There is one permanently-installed instance of InsertMode. This allows PostFindMode to query its state.
+ @permanentInstance: null
+
constructor: (options = {}) ->
+ InsertMode.permanentInstance ||= @
+
defaults =
name: "insert"
keydown: (event) => @handleKeydownEvent event
@@ -51,12 +56,8 @@ class InsertMode extends Mode
exit: (target) ->
if target == undefined or target == @insertModeLock
- if @options.targetElement?
- super()
- else
- # If @options.targetElement isn't set, then this is the permanently-installed instance from the front
- # end. So, we don't actually exit; instead, we just reset ourselves.
- @insertModeLock = null
+ # If this is the permanently-installed instance, then we don't actually exit; instead, we just reset.
+ if @ == InsertMode.permanentInstance then @insertModeLock = null else super()
chooseBadge: (badge) ->
badge.badge ||= "I" if @isActive()