1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-03 09:04:12 +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

@@ -1209,7 +1209,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
* @property {[Window]} Returns an array of all the host application's
* open windows.
*/
get windows() [win for (win in iter(services.windowMediator.getEnumerator("navigator:browser"))) if (win.dactyl)],
get windows() [w for (w of overlay.windows)]
}, {
toolbarHidden: function hidden(elem) (elem.getAttribute("autohide") || elem.getAttribute("collapsed")) == "true"
@@ -1591,7 +1591,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
function (args) {
if (dactyl.has("tabs") && tabs.remove(tabs.getTab(), 1, false))
return;
else if (dactyl.windows.length > 1)
else if (dactyl.windows.size > 1)
window.close();
else
dactyl.quit(false, args.bang);

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