aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2016-03-12 10:00:25 +0000
committerStephen Blott2016-03-28 05:44:11 +0100
commitbdf1469075c8e5cca8cd328ca326ac8df145a141 (patch)
tree0e32539c74c88a6fd1ebc299fd713b9711dde024
parentfe2e958ebbb4157d06a963ee8479ece7f2685c94 (diff)
downloadvimium-bdf1469075c8e5cca8cd328ca326ac8df145a141.tar.bz2
Global link hints; reinstate href-based modes.
-rw-r--r--content_scripts/link_hints.coffee13
1 files changed, 7 insertions, 6 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 7424b3f5..25f57316 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -53,17 +53,17 @@ HintCoordinator =
onExit: []
sendMessage: (name, request = {}) ->
- request = extend request, {handler: "linkHintsMessage", name, frameId}
- chrome.runtime.sendMessage request
+ chrome.runtime.sendMessage extend request, {handler: "linkHintsMessage", name, frameId}
- activateMode: (@mode, onExit) ->
+ activateMode: (mode, onExit) ->
@onExit = [onExit]
- @sendMessage "activateMode", modeIndex: availableModes.indexOf @mode
+ @sendMessage "activateMode", modeIndex: availableModes.indexOf mode
getHints: ->
@localHints = ClickableElements.getVisibleClickableElements()
@sendMessage "postHints", hints: for hint, localIndex in @localHints
- {rect: hint.rect, linkText: hint.linkText, showLinkText: hint.showLinkText, localIndex, frameId}
+ {rect: hint.rect, linkText: hint.linkText, showLinkText: hint.showLinkText, hasHref: hint.hasHref,
+ localIndex, frameId}
activateLinkHintsMode: ({hints, modeIndex, frameId: activateModeFrameId}) ->
@onExit = [] unless frameId == activateModeFrameId
@@ -118,7 +118,7 @@ class LinkHintsModeBase
# For these modes, we filter out those elements which don't have an HREF (since there's nothing we can do
# with them).
- elements = (el for el in elements when el.element.href?) if mode in [ COPY_LINK_URL, OPEN_INCOGNITO ]
+ elements = (el for el in elements when el.hasHref) if mode in [ COPY_LINK_URL, OPEN_INCOGNITO ]
if elements.length == 0
HUD.showForDuration "No links to select.", 2000
@@ -328,6 +328,7 @@ ClickableElements =
DomUtils.textContent.reset()
extend hint, @generateLinkText hint.element for hint in nonOverlappingElements
+ hint.hasHref = hint.element.href? for hint in nonOverlappingElements
nonOverlappingElements
# Generate a map of input element => label