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; } }; |
