| Index: chrome/content/ui/sidebar.js |
| =================================================================== |
| --- a/chrome/content/ui/sidebar.js |
| +++ b/chrome/content/ui/sidebar.js |
| @@ -19,17 +19,16 @@ Cu.import("resource://gre/modules/XPCOMU |
| // Main browser window |
| var mainWin = parent; |
| // The window handler currently in use |
| var requestNotifier = null; |
| var cacheStorage = null; |
| -var noFlash = false; |
| // Matcher for disabled filters |
| var disabledMatcher = new CombinedMatcher(); |
| // Cached string values |
| var docDomainThirdParty = null; |
| var docDomainFirstParty = null; |
| @@ -119,17 +118,16 @@ function getFilter(item) |
| if ("filter" in item && item.filter) |
| return Filter.fromText(item.filter); |
| else |
| return null; |
| } |
| // To be called on unload |
| function cleanUp() { |
| - flasher.stop(); |
| requestNotifier.shutdown(); |
| FilterNotifier.removeListener(reloadDisabledFilters); |
| Prefs.removeListener(onPrefChange); |
| E("list").view = null; |
| let {removeBrowserLocationListener} = require("appSupport"); |
| if (removeBrowserLocationListener) |
| removeBrowserLocationListener(mainWin, handleLocationChange); |
| @@ -193,18 +191,18 @@ function onSelectionChange() { |
| if (item && window.content) |
| { |
| let key = item.location + " " + item.type + " " + item.docDomain; |
| RequestNotifier.storeSelection(window.content, key); |
| treeView.itemToSelect = null; |
| } |
| - if (!noFlash) |
| - flasher.flash(item ? item.nodes : null); |
| + if (requestNotifier) |
| + requestNotifier.flashNodes(item ? item.ids : null, Prefs.flash_scrolltoitem); |
| } |
| function handleLocationChange() |
| { |
| if (requestNotifier) |
| requestNotifier.shutdown(); |
| treeView.clearData(); |
| @@ -1084,24 +1082,25 @@ var treeView = { |
| // Merge duplicate entries |
| let key = item.location + " " + item.type + " " + item.docDomain; |
| if (key in this.dataMap) |
| { |
| // We know this item already - take over the filter if any and be done with it |
| let existing = this.dataMap[key]; |
| if (item.filter) |
| existing.filter = item.filter; |
| + existing.ids.push(item.id); |
| this.invalidateItem(existing); |
| return; |
| } |
| // Add new item to the list |
| // Store original item in orig property - reading out prototype is messed up in Gecko 1.9.2 |
| - item = {__proto__: item, orig: item, nodes: []}; |
| + item = {__proto__: item, orig: item, nodes: [], ids: [item.id]}; |
| this.allData.push(item); |
| this.dataMap[key] = item; |
| // Show disabled filters if no other filter applies |
| if (!item.filter) |
| { |
| let disabledMatch = disabledMatcher.matchesAny(item.location, RegExpFilter.typeMap[item.type], item.docDomain, item.thirdParty); |
| if (disabledMatch) |