diff options
| author | Stephen Blott | 2016-03-27 10:43:09 +0100 |
|---|---|---|
| committer | Stephen Blott | 2016-03-27 10:43:09 +0100 |
| commit | 5e26626dace96bdfe8189ee4138dbc273427733c (patch) | |
| tree | 2719f5d94b81009bbc8bcdd3c9816fee7adbed6d | |
| parent | da4dc100da8ac862a84dac7f78cfb22e71d544a4 (diff) | |
| parent | c68b5e599607acbda54316056ad067a7aee9d251 (diff) | |
| download | vimium-5e26626dace96bdfe8189ee4138dbc273427733c.tar.bz2 | |
Merge pull request #2066 from smblott-github/fix-help-dialog-issues-2045
Fix help dialog issues #2045 (release blockers)
| -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} |
