diff options
| author | Niklas Baumstark | 2012-01-21 02:53:57 +0100 | 
|---|---|---|
| committer | Niklas Baumstark | 2012-04-10 23:54:35 +0200 | 
| commit | bd6f3bebc41792567b31804f3463119b649cb1e1 (patch) | |
| tree | 8e34597a0fee18425378818616ed48257a0d5c2b /lib | |
| parent | 2a9c88ae1db8b4eadd5ad815966b1820c5d0af5b (diff) | |
| download | vimium-bd6f3bebc41792567b31804f3463119b649cb1e1.tar.bz2 | |
fix some issues with asynchronous filtering and refreshing
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/completion.js | 17 | 
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);          });        }      }  | 
