aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_insert.coffee
diff options
context:
space:
mode:
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()