diff options
| author | Bill Casarin | 2010-06-28 18:55:06 -0400 | 
|---|---|---|
| committer | Bill Casarin | 2010-11-26 17:50:42 -0500 | 
| commit | 133e1ad89a822022f25793007c88f7ad74920897 (patch) | |
| tree | 72acab3737e4217878a3047a27160d834d8f476e /linkHints.js | |
| parent | 54c9cfab5893ff07fdc95c49185fba78f7831339 (diff) | |
| download | vimium-133e1ad89a822022f25793007c88f7ad74920897.tar.bz2 | |
Fixed the logic for both cases, should work great now
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 23 | 
1 files changed, 18 insertions, 5 deletions
diff --git a/linkHints.js b/linkHints.js index 2ee75f6a..d55966f5 100644 --- a/linkHints.js +++ b/linkHints.js @@ -251,16 +251,29 @@ function isSelectable(element) {  function highlightLinkMatches(searchString) {    var linksMatched = [];    var linkSearchString = linkTextKeystrokeQueue.join(""); +  var narrowMode = isNarrowMode();    var hasSearchString = searchString.length != 0;    var hasLinkSearchString = linkSearchString.length != 0; -  var narrowMode = isNarrowMode(); +    for (var i = 0; i < hintMarkers.length; i++) {      var linkMarker = hintMarkers[i];      var matchedLink = linkMarker.getAttribute("linkText").indexOf(linkSearchString) >= 0; -    var matchedHintStart = hasSearchString &&  -      linkMarker.getAttribute("hintString").indexOf(searchString) == 0; -    var shouldRemoveMatch = (!matchedLink && !matchedHintStart) || -      ((matchedLink != matchedHintStart) && hasSearchString && hasLinkSearchString) +    var matchedHintStart = linkMarker.getAttribute("hintString").indexOf(searchString) == 0; + +    // if we're in narrow mode, make sure to designate a hint match only when  +    // the search string is populated. +    if (narrowMode) +      matchedHintStart = matchedHintStart && hasSearchString; + +    var shouldRemoveMatch; +    if (narrowMode) { +      shouldRemoveMatch =  +        (!matchedLink && !matchedHintStart) ||  +        (!matchedLink && hasLinkSearchString) || +        (!matchedHintStart && hasSearchString) +    } else { +      shouldRemoveMatch = !matchedHintStart; +    }      if (matchedHintStart) {        for (var j = 0; j < linkMarker.childNodes.length; j++)  | 
