aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Casarin2010-06-28 18:55:06 -0400
committerBill Casarin2010-11-26 17:50:42 -0500
commit133e1ad89a822022f25793007c88f7ad74920897 (patch)
tree72acab3737e4217878a3047a27160d834d8f476e
parent54c9cfab5893ff07fdc95c49185fba78f7831339 (diff)
downloadvimium-133e1ad89a822022f25793007c88f7ad74920897.tar.bz2
Fixed the logic for both cases, should work great now
-rw-r--r--linkHints.js23
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++)