diff options
| -rw-r--r-- | content_scripts/link_hints.coffee | 3 | ||||
| -rw-r--r-- | content_scripts/mode.coffee | 6 | ||||
| -rw-r--r-- | content_scripts/mode_visual.coffee | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 909f50b4..ad2afaa2 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -66,12 +66,13 @@ LinkHints = { id: "vimiumHintMarkerContainer", className: "vimiumReset" }) @handlerMode = - new class HintMode extends Mode + new class HintMode extends InsertModeBlocker constructor: -> super name: "hint/#{mode.name}" badge: "#{mode.key}?" exitOnEscape: true + exitOnClick: true keydown: (event) -> LinkHints.onKeyDownInMode hintMarkers, event # trap all key events keypress: => @stopBubblingAndFalse diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee index 94854b74..51bb1c29 100644 --- a/content_scripts/mode.coffee +++ b/content_scripts/mode.coffee @@ -97,6 +97,12 @@ class Mode _name: "mode-#{@id}/exitOnBlur" "blur": (event) => @alwaysContinueBubbling => @exit() if event.srcElement == @options.exitOnBlur + # If @options.exitOnClick is truthy, then the mode will exit on any click event. + if @options.exitOnClick + @push + _name: "mode-#{@id}/exitOnClick" + "click": (event) => @alwaysContinueBubbling => @exit() + # If @options.trackState is truthy, then the mode mainatins the current state in @enabled and @passKeys, # and calls @registerStateChange() (if defined) whenever the state changes. if @options.trackState diff --git a/content_scripts/mode_visual.coffee b/content_scripts/mode_visual.coffee index 2580106d..7b5cc0f6 100644 --- a/content_scripts/mode_visual.coffee +++ b/content_scripts/mode_visual.coffee @@ -1,5 +1,5 @@ -class VisualMode extends Mode +class VisualMode extends InsertModeBlocker constructor: (element=null) -> super name: "visual" |
