1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 12:38:00 +01:00

Add dactyl instance tracking.

This commit is contained in:
Kris Maglione
2011-08-14 17:06:46 -04:00
parent 1509ee96e5
commit 236a894c89
3 changed files with 16 additions and 6 deletions

View File

@@ -51,9 +51,7 @@ CommandLineHandler.prototype = {
if (remote) {
commandLine.preventDefault = true;
require(global, "services");
let win = services.windowMediator.getMostRecentWindow("navigator:browser");
if (win && win.dactyl)
win.dactyl.execute(remote);
util.dactyl.execute(remote);
}
}
catch(e) {

View File

@@ -495,6 +495,12 @@ var Events = Module("events", {
this._activeMenubar = false;
this.listen(window, this, "events");
util.windows = [window].concat(util.windows);
},
destroy: function destroy() {
util.windows = util.windows.filter(function (w) w != window);
},
signals: {
@@ -705,7 +711,7 @@ var Events = Module("events", {
let event = DOM.Event(doc, type, evt);
if (!evt_obj.dactylString && !mode)
events.dispatch(target, event, evt);
DOM.Event.dispatch(target, event, evt);
else if (type === "keypress")
events.events.keypress.call(events, event);
}
@@ -1153,6 +1159,9 @@ var Events = Module("events", {
focus: function onFocus(event) {
let elem = event.originalTarget;
if (elem == window)
util.windows = [window].concat(util.windows.filter(function (w) w != window));
elem.dactylHadFocus = true;
if (event.target instanceof Ci.nsIDOMXULTextBoxElement)
if (Events.isHidden(elem, true))

View File

@@ -66,6 +66,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
this.addObserver(this);
this.overlays = {};
this.windows = [];
},
cleanup: function cleanup() {
@@ -84,14 +85,16 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
}
},
// FIXME: Only works for Pentadactyl
get activeWindow() services.windowMediator.getMostRecentWindow("navigator:browser"),
get activeWindow() this.windows[0],
dactyl: update(function dactyl(obj) {
if (obj)
var global = Class.objectGlobal(obj);
return {
__noSuchMethod__: function (meth, args) {
let win = util.activeWindow;
var dactyl = global && global.dactyl || win && win.dactyl;
if (!dactyl)
return null;