diff options
Diffstat (limited to 'content_scripts/mode_insert.coffee')
| -rw-r--r-- | content_scripts/mode_insert.coffee | 13 |
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 |
