aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/link_hints.coffee7
-rw-r--r--lib/dom_utils.coffee6
2 files changed, 9 insertions, 4 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 24bd7126..80d091dd 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -141,7 +141,12 @@ LinkHints =
# of digits needed to enumerate all of the links on screen.
#
getVisibleClickableElements: ->
- resultSet = DomUtils.evaluateXPath(@clickableElementsXPath, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE)
+ # If we are fullscreen, only consider elements contained in the fullscreen element.
+ resultType = XPathResult.ORDERED_NODE_SNAPSHOT_TYPE
+ resultSet = if document.webkitIsFullScreen
+ DomUtils.evaluateXPath(@clickableElementsXPath, resultType, document.webkitFullscreenElement)
+ else
+ DomUtils.evaluateXPath(@clickableElementsXPath, resultType)
visibleElements = []
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index 21018049..5f316c08 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -33,13 +33,13 @@ DomUtils =
makeXPath: (elementArray) ->
xpath = []
for element in elementArray
- xpath.push("//" + element, "//xhtml:" + element)
+ xpath.push(".//" + element, ".//xhtml:" + element)
xpath.join(" | ")
- evaluateXPath: (xpath, resultType) ->
+ evaluateXPath: (xpath, resultType, contextNode = document.documentElement) ->
namespaceResolver = (namespace) ->
if (namespace == "xhtml") then "http://www.w3.org/1999/xhtml" else null
- document.evaluate(xpath, document.documentElement, namespaceResolver, resultType, null)
+ document.evaluate(xpath, contextNode, namespaceResolver, resultType, null)
#
# Returns the first visible clientRect of an element if it exists. Otherwise it returns null.