1
0
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:
Kris Maglione
2014-02-22 15:27:06 -08:00
parent 51eb03c376
commit 72626fd693
4 changed files with 14 additions and 8 deletions

View File

@@ -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))

View File

@@ -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) {

View File

@@ -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();