diff options
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 8 | ||||
| -rw-r--r-- | pages/help_dialog.coffee | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 023952c1..56f7742e 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -291,9 +291,11 @@ DomUtils.documentReady -> # focusThisFrame = (request) -> unless request.forceFocusThisFrame - if DomUtils.windowIsTooSmall() or document.body?.tagName.toLowerCase() == "frameset" - # This frame is too small to focus or it's a frameset. Cancel and tell the background page to focus the - # next frame instead. This affects sites like Google Inbox, which have many tiny iframes. See #1317. + skipThisFrame = DomUtils.windowIsTooSmall() # Frame is too small; see #1317. + skipThisFrame ||= document.body?.tagName.toLowerCase() == "frameset" + skipThisFrame ||= window.isVimiumUIComponent and not HelpDialog.showing + if skipThisFrame + # Cancel and tell the background page to focus the next frame instead. chrome.runtime.sendMessage handler: "nextFrame" return window.focus() diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee index 0300ec00..7fee8bf9 100644 --- a/pages/help_dialog.coffee +++ b/pages/help_dialog.coffee @@ -6,7 +6,8 @@ # top-level frame), and then we don't need to be concerned about nested help dialog frames. HelpDialog = dialogElement: null - isShowing: -> true + showing: false + isShowing: -> @showing # This setting is pulled out of local storage. It's false by default. getShowAdvancedCommands: -> Settings.get("helpDialog_showAdvancedCommands") @@ -69,8 +70,10 @@ HelpDialog = UIComponentServer.registerHandler (event) -> switch event.data.name ? event.data when "hide" then HelpDialog.hide() + when "hidden" then HelpDialog.showing = false when "activate" HelpDialog.init() + HelpDialog.showing = true HelpDialog.show event.data root = exports ? window |
