commit e1538240d88f985b8aac4623034a4817ad5533a7
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Sat Jul 3 12:24:01 2010 +0100

    Fix bug where preferences are shutdown before plugins can write to them
    
    * sorttab display has a cleanup() function which is called on deactivate.
      However, gtkpod_shutdown is called prior to the plugin deactivation hence
      preferences are destroyed.

 libgtkpod/gtkpod_app_iface.c |    8 +++-----
 libgtkpod/gtkpod_app_iface.h |    1 +
 src/gtkpod.c                 |   12 ++++++++----
 3 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/libgtkpod/gtkpod_app_iface.c b/libgtkpod/gtkpod_app_iface.c
index 42505f8..254bf58 100644
--- a/libgtkpod/gtkpod_app_iface.c
+++ b/libgtkpod/gtkpod_app_iface.c
@@ -127,7 +127,7 @@ gchar* gtkpod_get_glade_xml() {
  *
  * return value: TRUE if it's OK to quit.
  */
-static gboolean ok_to_close_gtkpod(void) {
+gboolean ok_to_close_gtkpod(void) {
     gint result = GTK_RESPONSE_OK;
 
     if (!files_are_saved()) {
@@ -155,10 +155,8 @@ static gboolean ok_to_close_gtkpod(void) {
  */
 gint gtkpod_cleanup_quit() {
     if (!widgets_blocked) {
-        if (ok_to_close_gtkpod()) {
-            gtkpod_shutdown();
-            return TRUE; // Already to carry on quitting
-        }
+        gtkpod_shutdown();
+        return TRUE; // Already to carry on quitting
     }
     return FALSE; // dont quit!
 }
diff --git a/libgtkpod/gtkpod_app_iface.h b/libgtkpod/gtkpod_app_iface.h
index b0ceaba..88403d0 100644
--- a/libgtkpod/gtkpod_app_iface.h
+++ b/libgtkpod/gtkpod_app_iface.h
@@ -153,6 +153,7 @@ void gp_init(int argc, char *argv[]);
 void gtkpod_app_set_glade_xml(gchar *xml_file);
 gchar* gtkpod_get_glade_xml();
 
+gboolean ok_to_close_gtkpod();
 gint gtkpod_cleanup_quit();
 
 void gtkpod_statusbar_message(gchar* message, ...);
diff --git a/src/gtkpod.c b/src/gtkpod.c
index a607f3d..bda4f87 100644
--- a/src/gtkpod.c
+++ b/src/gtkpod.c
@@ -82,7 +82,7 @@ void gtkpod_init(int argc, char *argv[]) {
     gtkpod_app_set_glade_xml(glade_xml_file);
     g_free(glade_xml_file);
 
-    /* initialise gtkpod library items depedent on path of executable*/
+    /* initialise gtkpod library items dependent on path of executable*/
     gp_init(argc, argv);
 
     /* Add blocking widgets from the framework */
@@ -184,10 +184,8 @@ void gtkpod_init(int argc, char *argv[]) {
 /* callback for gtkpod window's close button */
 static gboolean on_gtkpod_delete_event(GtkWidget *widget, GdkEvent *event, 
gpointer user_data) {
 
-    if (!gtkpod_cleanup_quit()) {
-        // Dont want to quit so avoid signalling any destroy event
+    if (! ok_to_close_gtkpod())
         return TRUE;
-    }
 
     AnjutaPluginManager *plugin_manager;
     AnjutaProfileManager *profile_manager;
@@ -228,6 +226,12 @@ static gboolean on_gtkpod_delete_event(GtkWidget *widget, 
GdkEvent *event, gpoin
         gtk_widget_hide(GTK_WIDGET (app));
         anjuta_plugin_manager_unload_all_plugins(plugin_manager);
     }
+
+    if (!gtkpod_cleanup_quit()) {
+        // Dont want to quit so avoid signalling any destroy event
+        return TRUE;
+    }
+
     return FALSE;
 }
 

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to