fix shutdown so ctypes libs are close cleanly + cleaning

This commit is contained in:
foudfou 2012-08-04 15:22:10 +02:00
parent a9cc299259
commit 6f95421a2f
6 changed files with 10 additions and 6 deletions

View File

@ -110,6 +110,7 @@ firetray.Handler = {
},
shutdown: function() {
F.LOG("Disabling Handler");
firetray.PrefListener.unregister();
if (this.inMailApp)

View File

@ -33,7 +33,7 @@ firetray.InstantMessaging = {
if (!this.initialized) return;
F.LOG("Disabling InstantMessaging");
Services.obs.removeAllObservers(firetray.InstantMessaging);
firetray.Utils.removeAllObservers(firetray.InstantMessaging);
this.initialized = false;
},

View File

@ -54,11 +54,12 @@ firetray.Messaging = {
F.LOG("Disabling Messaging");
firetray.InstantMessaging.shutdown();
F.LOG("HI THERE");
MailServices.mailSession.RemoveFolderListener(this.mailSessionListener);
firetray.Handler.setIconImageDefault();
Services.obs.removeAllObservers(firetray.Messaging);
firetray.Utils.removeAllObservers(firetray.Messaging);
this.initialized = false;
},

View File

@ -20,6 +20,8 @@ firetray.GtkIcons = {
init: function() {
try {
if (this.initialized) return true;
this.loadDefaultTheme();
this.initialized = true;
return true;

View File

@ -60,6 +60,7 @@ firetray.PopupMenu = {
},
shutdown: function() {
F.LOG("Disabling PopupMenu");
firetray.Utils.tryCloseLibs([gobject, gtk]);
this.initialized = false;
},

View File

@ -39,14 +39,12 @@ firetray.StatusIcon = {
this.FILENAME_BLANK = firetray.Utils.chromeToPath(
"chrome://firetray/skin/blank-icon.png");
this.defineIconNames();
Cu.import("resource://firetray/linux/FiretrayGtkIcons.jsm");
firetray.GtkIcons.init();
this.defineIconNames();
this.loadThemedIcons();
this.trayIcon = gtk.gtk_status_icon_new();
this.trayIcon = gtk.gtk_status_icon_new();
firetray.Handler.setIconImageDefault();
firetray.Handler.setIconTooltipDefault();
@ -61,6 +59,7 @@ firetray.StatusIcon = {
},
shutdown: function() {
F.LOG("Disabling StatusIcon");
firetray.PopupMenu.shutdown();
firetray.GtkIcons.shutdown();
firetray.Utils.tryCloseLibs([cairo, gobject, gdk, gio, gtk, pango, pangocairo]);