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 | |
| parent | 54c9cfab5893ff07fdc95c49185fba78f7831339 (diff) | |
| download | vimium-133e1ad89a822022f25793007c88f7ad74920897.tar.bz2 | |
Fixed the logic for both cases, should work great now
| -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++) |
