diff options
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/linkHints.js b/linkHints.js index c729b832..8f91264c 100644 --- a/linkHints.js +++ b/linkHints.js @@ -184,7 +184,7 @@ var linkHints = {        if (linksMatched.length == 0) {          this.deactivateMode();        } else if (linksMatched.length == 1) { -        this.activateLink(linksMatched[0].clickableItem, delay); +        this.activateLink(linksMatched[0], delay);        } else {          for (var i in this.hintMarkers)            this.hideMarker(this.hintMarkers[i]); @@ -199,15 +199,16 @@ var linkHints = {     */    activateLink: function(matchedLink, delay) {      this.delayMode = true; -    if (domUtils.isSelectable(matchedLink)) { -      domUtils.simulateSelect(matchedLink); +    var clickEl = matchedLink.clickableItem; +    if (domUtils.isSelectable(clickEl)) { +      domUtils.simulateSelect(clickEl);        this.deactivateMode(delay, function() { linkHints.delayMode = false; });      } else {        // TODO figure out which other input elements should not receive focus -      if (matchedLink.nodeName.toLowerCase() === 'input' && matchedLink.type !== 'button') -        matchedLink.focus(); -      domUtils.flashElement(matchedLink); -      this.linkActivator(matchedLink); +      if (clickEl.nodeName.toLowerCase() === 'input' && clickEl.type !== 'button') +        clickEl.focus(); +      domUtils.flashElement(clickEl, matchedLink.rect); +      this.linkActivator(clickEl);        if (this.shouldOpenWithQueue) {          this.deactivateMode(delay, function() {            linkHints.delayMode = false; @@ -544,6 +545,8 @@ var hintUtils = {      marker.style.left = clientRect.left + window.scrollX + "px";      marker.style.top = clientRect.top  + window.scrollY  + "px"; +    marker.rect = link.rect; +      return marker;    }  };  | 
