aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_insert.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-03 05:58:09 +0000
committerStephen Blott2015-01-03 06:56:08 +0000
commit103fcde7c51fe83bc9c58fc28c3c11ce6a791f0f (patch)
tree582ffa2023f6b909f63681c48173deb456c50910 /content_scripts/mode_insert.coffee
parenta71da0e9aff6a4f89724f5a15a022790e23d5049 (diff)
downloadvimium-103fcde7c51fe83bc9c58fc28c3c11ce6a791f0f.tar.bz2
Modes; more renaming and refactoring.
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