aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/vimium_frontend.coffee8
-rw-r--r--pages/help_dialog.coffee5
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