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, 11 insertions, 2 deletions
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index 34fad926..64aaa445 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -67,16 +67,25 @@ class InsertMode extends Mode
@handlers.push handlerStack.push
focus: (event) =>
- handlerStack.alwaysPropagate =>
+ handlerStack.alwaysContinueBubbling =>
if not @isInsertMode and @isFocusable event.target
@activate event.target
blur: (event) =>
- handlerStack.alwaysPropagate =>
+ handlerStack.alwaysContinueBubbling =>
if @isInsertMode and event.target == @insertModeLock
@deactivate()
# We may already have been dropped into insert mode. So check.
Mode.updateBadge()
+# Utility mode.
+# Activate this mode to prevent a focused, editable element from triggering insert mode.
+class FocusMustNotTriggerInsertMode extends Mode
+ constructor: ->
+ super()
+ @handlers.push handlerStack.push
+ focus: => @suppressEvent
+
root = exports ? window
root.InsertMode = InsertMode
+root.FocusMustNotTriggerInsertMode = FocusMustNotTriggerInsertMode