aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNiklas Baumstark2012-01-21 02:53:57 +0100
committerNiklas Baumstark2012-04-10 23:54:35 +0200
commitbd6f3bebc41792567b31804f3463119b649cb1e1 (patch)
tree8e34597a0fee18425378818616ed48257a0d5c2b /lib
parent2a9c88ae1db8b4eadd5ad815966b1820c5d0af5b (diff)
downloadvimium-bd6f3bebc41792567b31804f3463119b649cb1e1.tar.bz2
fix some issues with asynchronous filtering and refreshing
Diffstat (limited to 'lib')
-rw-r--r--lib/completion.js17
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/completion.js b/lib/completion.js
index f713eaa0..c7ac0417 100644
--- a/lib/completion.js
+++ b/lib/completion.js
@@ -146,7 +146,7 @@ var completion = (function() {
var AsyncFuzzyUrlCompleter = function() {
this.completions = null;
this.id = utils.createUniqueId();
- this.readyCallback = function(results) {
+ this.readyCallback = this.fallbackReadyCallback = function(results) {
this.completions = results;
}
}
@@ -164,7 +164,7 @@ var completion = (function() {
var handler = function(results) {
var filtered = [];
fuzzyMatcher.filter(query,
- self.completions, function(comp) { return comp.str },
+ results, function(comp) { return comp.str },
self.id,
function(match) {
filtered.push(createHighlightingCompletion(
@@ -180,12 +180,11 @@ var completion = (function() {
// yes: call the callback synchronously
handler(this.completions);
} else {
- // no: push our handler to the handling chain
- var oldReadyCallback = this.readyCallback;
+ // no: register the handler as a callback
this.readyCallback = function(results) {
handler(results);
- this.readyCallback = oldReadyCallback;
- oldReadyCallback(results);
+ this.readyCallback = this.fallbackReadyCallback;
+ this.readyCallback(results);
}
}
},
@@ -339,11 +338,7 @@ var completion = (function() {
all.sort(function(a,b) {
return a.relevancy - b.relevancy;
});
- for (var i = 0; i < all.length; ++i) {
- if (!callback(all[i]))
- // the caller doesn't want any more results
- return;
- }
+ callback(all);
});
}
}