Save config file after some of the plugins are changed.
authorHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 8 Jun 2008 20:29:41 +0000 (20:29 +0000)
committerHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 8 Jun 2008 20:29:41 +0000 (20:29 +0000)
Bump version number to 0.3.7.

configure.ac
src/configurator.c
src/panel.c
src/panel.h
src/plugins/launchbar.c
src/plugins/menu.c

index 2c279a7..4830bcc 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.53)
-AC_INIT(lxpanel, 0.3.6.3, http://lxde.org/)
+AC_INIT(lxpanel, 0.3.7, http://lxde.org/)
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([src/bg.c])
 AC_CONFIG_HEADER([config.h])
index cd73966..64f8749 100644 (file)
@@ -1018,6 +1018,7 @@ void panel_config_save( Panel* p )
 
     /* save the global config file */
     save_global_config();
+    p->config_changed = 0;
 }
 
 void restart(void)
index c9b8de0..d08de9a 100644 (file)
@@ -452,6 +452,9 @@ panel_press_button_event(GtkWidget *widget, GdkEvent *event, gpointer user_data)
 static void panel_popupmenu_config_plugin( GtkMenuItem* item, Plugin* plugin )
 {
     plugin->class->config( plugin, plugin->panel->topgwin );
+
+    /* FIXME: this should be more elegant */
+    plugin->panel->config_changed = TRUE;
 }
 
 #if 0
@@ -693,7 +696,7 @@ static void panel_popupmenu_delete_panel( GtkMenuItem* item, Panel* panel )
         fname = g_build_filename( dir, panel->name, NULL );
         g_free( dir );
         g_unlink( fname );
-
+        panel->config_changed = 0;
         panel_destroy( panel );
     }
 }
@@ -1182,6 +1185,9 @@ void panel_destroy(Panel *p)
 {
     ENTER;
 
+    if( p->config_changed )
+        panel_config_save( p );
+
     g_list_foreach(p->plugins, delete_plugin, NULL);
     g_list_free(p->plugins);
     p->plugins = NULL;
index 70f7d30..1d4025b 100644 (file)
@@ -69,6 +69,7 @@ struct _Panel{
     int widthtype, width;
     int heighttype, height;
 
+    guint config_changed : 1;
     guint self_destroy : 1;
     guint setdocktype : 1;
     guint setstrut : 1;
index 91cd3bc..8504880 100644 (file)
@@ -88,6 +88,8 @@ typedef struct launchbar {
     GtkWidget* config_dlg;
 } launchbar;
 
+void panel_config_save(Panel* panel);
+
 void btn_free( btn_t* btn )
 {
     g_free( btn->desktop_id );
@@ -763,6 +765,8 @@ static void launchbar_config( Plugin *p, GtkWindow* parent )
         init_btn_list( p, view );
 
         gtk_widget_show_all( dlg );
+
+        g_object_weak_ref(dlg, panel_config_save, p->panel );
     }
     gtk_window_present( GTK_WINDOW(lb->config_dlg) );
 }
index 03f81e5..813b717 100644 (file)
@@ -661,7 +661,7 @@ PluginClass menu_plugin_class = {
 
     constructor : menu_constructor,
     destructor  : menu_destructor,
-    config : menu_config,
+    /* config : menu_config, */
     save : save_config
 };