diff options
| -rw-r--r-- | content_scripts/link_hints.coffee | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 4229d549..4d9a02b8 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -79,8 +79,8 @@ HintCoordinator = @localHints = LocalHints.getLocalHints() console.log "getHintDescriptors", frameId, "[#{@localHints.length}]" if @debug @sendMessage "postHintDescriptors", hintDescriptors: - @localHints.map ({linkText, showLinkText, hasHref}, localIndex) -> - {linkText, showLinkText, hasHref, frameId, localIndex} + @localHints.map ({linkText, hasHref}, localIndex) -> + {linkText, hasHref, frameId, localIndex} # We activate LinkHintsMode() in every frame and provide every frame with exactly the same hint descriptors. # We also propagate the key state between frames. Therefore, the hint-selection process proceeds in lock @@ -187,19 +187,22 @@ class LinkHintsMode createMarkerFor: (desc) -> marker = if desc.frameId == frameId + localHintDescriptor = HintCoordinator.getLocalHintMarker desc el = DomUtils.createElement "div" - el.rect = HintCoordinator.getLocalHintMarker(desc).rect + el.rect = localHintDescriptor.rect el.style.left = el.rect.left + window.scrollX + "px" el.style.top = el.rect.top + window.scrollY + "px" - extend el, className: "vimiumReset internalVimiumHintMarker vimiumHintMarker" + extend el, + className: "vimiumReset internalVimiumHintMarker vimiumHintMarker" + showLinkText: localHintDescriptor.showLinkText + localHintDescriptor: localHintDescriptor else {} extend marker, hintDescriptor: desc - linkText: desc.linkText - showLinkText: desc.showLinkText isLocalMarker: desc.frameId == frameId + linkText: desc.linkText stableSortCount: ++@stableSortCount # Handles <Shift> and <Ctrl>. @@ -295,10 +298,10 @@ class LinkHintsMode # selectively pushing the appropriate HintCoordinator.onExit handlers. activateLink: (linkMatched, userMightOverType=false) -> @removeHintMarkers() - localHintDescriptor = HintCoordinator.getLocalHintMarker linkMatched.hintDescriptor - clickEl = localHintDescriptor?.element - if clickEl? + if linkMatched.isLocalMarker + localHintDescriptor = linkMatched.localHintDescriptor + clickEl = localHintDescriptor.element HintCoordinator.onExit.push (isSuccess) => if isSuccess if localHintDescriptor.reason == "Frame." |
