diff options
| author | mrmr1993 | 2014-12-06 21:58:04 +0000 |
|---|---|---|
| committer | mrmr1993 | 2014-12-06 21:58:04 +0000 |
| commit | dcc7e1ff5ae28b700e12ecf75d403001fc9c2152 (patch) | |
| tree | d21d3f1679323e18ae7a50ede87f8ba86f6ec4e8 | |
| parent | b6125a2b13d6927c10f381f51b207445fd3f049b (diff) | |
| download | vimium-dcc7e1ff5ae28b700e12ecf75d403001fc9c2152.tar.bz2 | |
Only consider fullscreen elements' children for link hints
| -rw-r--r-- | content_scripts/link_hints.coffee | 7 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 6 |
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. |
