aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode_key_handler.coffee
diff options
context:
space:
mode:
authorStephen Blott2016-03-27 10:43:09 +0100
committerStephen Blott2016-03-27 10:43:09 +0100
commit5e26626dace96bdfe8189ee4138dbc273427733c (patch)
tree2719f5d94b81009bbc8bcdd3c9816fee7adbed6d /content_scripts/mode_key_handler.coffee
parentda4dc100da8ac862a84dac7f78cfb22e71d544a4 (diff)
parentc68b5e599607acbda54316056ad067a7aee9d251 (diff)
downloadvimium-5e26626dace96bdfe8189ee4138dbc273427733c.tar.bz2
Merge pull request #2066 from smblott-github/fix-help-dialog-issues-2045
Fix help dialog issues #2045 (release blockers)
Diffstat (limited to 'content_scripts/mode_key_handler.coffee')
-rw-r--r--content_scripts/mode_key_handler.coffee11
1 files changed, 8 insertions, 3 deletions
diff --git a/content_scripts/mode_key_handler.coffee b/content_scripts/mode_key_handler.coffee
index bafdfd56..b6f384ce 100644
--- a/content_scripts/mode_key_handler.coffee
+++ b/content_scripts/mode_key_handler.coffee
@@ -37,12 +37,17 @@ class KeyHandlerMode extends Mode
onKeydown: (event) ->
keyChar = KeyboardUtils.getKeyCharString event
isEscape = KeyboardUtils.isEscape event
- if isEscape and @countPrefix == 0 and @keyState.length == 1
- @continueBubbling
- else if isEscape
+ if isEscape and (@countPrefix != 0 or @keyState.length != 1)
@keydownEvents[event.keyCode] = true
@reset()
false # Suppress event.
+ # If the help dialog loses the focus, then Escape should hide it; see point 2 in #2045.
+ else if isEscape and HelpDialog?.showing
+ @keydownEvents[event.keyCode] = true
+ HelpDialog.hide()
+ false # Suppress event.
+ else if isEscape
+ @continueBubbling
else if @isMappedKey keyChar
@keydownEvents[event.keyCode] = true
@handleKeyChar keyChar