diff options
| -rw-r--r-- | content_scripts/mode_key_handler.coffee | 11 | ||||
| -rw-r--r-- | pages/help_dialog.coffee | 10 | ||||
| -rw-r--r-- | pages/options.coffee | 2 |
3 files changed, 18 insertions, 5 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 diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee index e16fd5d3..997ea915 100644 --- a/pages/help_dialog.coffee +++ b/pages/help_dialog.coffee @@ -27,11 +27,19 @@ HelpDialog = HelpDialog.toggleAdvancedCommands, false) document.documentElement.addEventListener "click", (event) => - @hide() unless @dialogElement.contains event.target + # Normally, we hide the help dialog on "click". On the options page though, we do not. This allows the + # user to view the help page while typing command names into the key mappings input; see #2045. + @hide() unless @isVimiumOptionsPage() or @dialogElement.contains event.target , false isReady: -> true + isVimiumOptionsPage: -> + try + window.top.isVimiumOptionsPage + catch + false + show: (html) -> for own placeholder, htmlString of html @dialogElement.querySelector("#help-dialog-#{placeholder}").innerHTML = htmlString diff --git a/pages/options.coffee b/pages/options.coffee index 6070400e..c708efa7 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -322,4 +322,4 @@ document.addEventListener "DOMContentLoaded", -> # Exported for tests. root = exports ? window -root.Options = Options +extend root, {Options, isVimiumOptionsPage: true} |
