1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-07 00:14:11 +01:00

Fix cleanup of styles during :rehash.

--HG--
branch : bootstrapped
This commit is contained in:
Kris Maglione
2010-12-27 12:39:49 -05:00
parent ff52485ca5
commit 0b853aba4e
2 changed files with 12 additions and 14 deletions

1
common/bootstrap.js vendored
View File

@@ -190,6 +190,7 @@ function shutdown(data, reason) {
services.observer.notifyObservers(null, "dactyl-purge", null); services.observer.notifyObservers(null, "dactyl-purge", null);
services.observer.notifyObservers(null, "dactyl-cleanup", null); services.observer.notifyObservers(null, "dactyl-cleanup", null);
services.observer.notifyObservers(null, "dactyl-cleanup-modules", null);
for (let factory in values(components)) for (let factory in values(components))
// TODO: Categories; // TODO: Categories;
factory.unregister(); factory.unregister();

View File

@@ -98,7 +98,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
obj._observe = observers; obj._observe = observers;
function register(meth) { function register(meth) {
for (let target in set(["dactyl-cleanup", "quit-application"].concat(Object.keys(observers)))) for (let target in set(["dactyl-cleanup-modules", "quit-application"].concat(Object.keys(observers))))
try { try {
services.observer[meth](obj, target, true); services.observer[meth](obj, target, true);
} }
@@ -108,7 +108,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
Class.replaceProperty(obj, "observe", Class.replaceProperty(obj, "observe",
function (subject, target, data) { function (subject, target, data) {
try { try {
if (target == "quit-application" || target == "dactyl-cleanup") if (target == "quit-application" || target == "dactyl-cleanup-modules")
register("removeObserver"); register("removeObserver");
if (observers[target]) if (observers[target])
observers[target].call(obj, subject, data); observers[target].call(obj, subject, data);
@@ -924,19 +924,16 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
}, },
observe: { observe: {
"dactyl-cleanup": function () { "dactyl-cleanup-modules": function () {
util.dump("dactyl: util: observe: dactyl-cleanup"); util.dump("dactyl: util: observe: dactyl-cleanup-modules");
// Let window cleanup functions run synchronously before we
// destroy modules.
util.timeout(function () {
for (let module in values(defineModule.modules))
if (module.cleanup) {
util.dump("cleanup: " + module.constructor.className);
util.trapErrors(module.cleanup, module);
}
services.observer.addObserver(this, "dactyl-rehash", true); for (let module in values(defineModule.modules))
}); if (module.cleanup) {
util.dump("cleanup: " + module.constructor.className);
util.trapErrors(module.cleanup, module);
}
services.observer.addObserver(this, "dactyl-rehash", true);
}, },
"dactyl-rehash": function () { "dactyl-rehash": function () {
services.observer.removeObserver(this, "dactyl-rehash"); services.observer.removeObserver(this, "dactyl-rehash");