mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-02-12 15:25:47 +01:00
Make overlay.windows a set.
This commit is contained in:
@@ -378,6 +378,9 @@ function values(obj) iter(function values() {
|
||||
else if (isinstance(obj, ["Generator", "Iterator", Iter]))
|
||||
for (let k in obj)
|
||||
yield k;
|
||||
else if (iter.iteratorProp in obj)
|
||||
for (let v of obj)
|
||||
yield v;
|
||||
else
|
||||
for (var k in obj)
|
||||
if (hasOwnProperty(obj, k))
|
||||
|
||||
@@ -231,7 +231,7 @@ overlay.overlayWindow(Object.keys(config.overlays),
|
||||
},
|
||||
|
||||
cleanup: function cleanup(window) {
|
||||
overlay.windows = overlay.windows.filter(w => w != window);
|
||||
overlay.windows.remove(window);
|
||||
|
||||
Cu.nukeSandbox(this.jsmodules);
|
||||
},
|
||||
@@ -252,7 +252,7 @@ overlay.overlayWindow(Object.keys(config.overlays),
|
||||
|
||||
defineModule.loadLog.push("Loaded in " + (Date.now() - this.startTime) + "ms");
|
||||
|
||||
overlay.windows = array.uniq(overlay.windows.concat(window), true);
|
||||
overlay.windows.add(window);
|
||||
},
|
||||
|
||||
loadModule: function loadModule(module, prereq, frame) {
|
||||
|
||||
@@ -404,19 +404,22 @@ var Overlay = Module("Overlay", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReferen
|
||||
|
||||
get activeModules() this.activeWindow && this.activeWindow.dactyl.modules,
|
||||
|
||||
get modules() this.windows.map(w => w.dactyl.modules),
|
||||
get modules() [w.dactyl.modules for (w of this.windows)],
|
||||
|
||||
/**
|
||||
* The most recently active dactyl window.
|
||||
*/
|
||||
get activeWindow() this.windows[0],
|
||||
get activeWindow() {
|
||||
let win = this._activeWindow && this._activeWindow.get();
|
||||
return this.windows.has(win) && win;
|
||||
},
|
||||
|
||||
set activeWindow(win) this.windows = [win].concat(this.windows.filter(w => w != win)),
|
||||
set activeWindow(win) this._activeWindow = util.weakReference(win),
|
||||
|
||||
/**
|
||||
* A list of extant dactyl windows.
|
||||
*/
|
||||
windows: Class.Memoize(() => [])
|
||||
windows: Class.Memoize(() => RealSet())
|
||||
});
|
||||
|
||||
endModule();
|
||||
|
||||
Reference in New Issue
Block a user