ayttm-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ayttm-commits] CVS: ayttm/src prefs.c,1.16,1.17


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src prefs.c,1.16,1.17
Date: Thu, 16 Jan 2003 08:59:44 -0500

Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv26821/src

Modified Files:
        prefs.c 
Log Message:
Fix segfault when modules' prefs window
was closed using WM's X button


Index: prefs.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/prefs.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- prefs.c     16 Jan 2003 13:11:01 -0000      1.16
+++ prefs.c     16 Jan 2003 13:59:42 -0000      1.17
@@ -1496,7 +1496,12 @@
 {
        eb_debug(DBG_MOD, "updating prefs\n");
        eb_input_accept(prefs);
-       gtk_widget_hide(plugin_prefs_win);
+       gtk_widget_destroy(plugin_prefs_win);
+}
+
+static void destroy_plugin_prefs(GtkWidget *w, void * data)
+{
+       plugin_prefs_win = NULL;
 }
 
 /* Sort the clist based upon the column passed */
@@ -1566,17 +1571,25 @@
        {
                GtkWidget *plugin_prefs_w=GetPref("widget::plugin_prefs_w");
                eb_debug(DBG_MOD, "Setting prefs for %s\n", plugin_path);
-               if(!plugin_prefs_w)
-               {
-                       g_warning("plugin_prefs_w not defined, not building 
plugin prefs window!");
-                       return;
-               }
+
                /* If the window already has a child, destroy it. */
-               if(GTK_BIN(plugin_prefs_w)->child!=NULL)
+               if(plugin_prefs_win!=NULL)
                {
-                       gtk_widget_hide(plugin_prefs_win);
+                       gtk_widget_destroy(plugin_prefs_win);
                        gtk_widget_destroy(GTK_BIN(plugin_prefs_w)->child);
                }
+               
+               plugin_prefs_w=gtk_scrolled_window_new(NULL,NULL);
+               
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(plugin_prefs_w),
+                       GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+               gtk_widget_set_usize(plugin_prefs_w, 300, 300);
+               SetPref("widget::plugin_prefs_w", plugin_prefs_w);
+               /*gtk_box_pack_start(GTK_BOX(vbox), w, TRUE, TRUE, 10);*/
+               plugin_prefs_win = gtk_window_new(GTK_WINDOW_DIALOG);
+               gtk_window_set_position(GTK_WINDOW(plugin_prefs_win), 
GTK_WIN_POS_MOUSE);
+               gtk_window_set_title(GTK_WINDOW(plugin_prefs_win), _("Plugin 
preferences"));
+               gtk_container_add(GTK_CONTAINER(plugin_prefs_win), 
plugin_prefs_w);
+               gtk_widget_hide(plugin_prefs_win);
 
                if(epi->pi.prefs)
                {
@@ -1599,6 +1612,8 @@
                        gtk_widget_show(vbox);
                        gtk_widget_show(plugin_prefs_w);
                        gtk_widget_show(plugin_prefs_win);
+                       gtk_signal_connect(GTK_OBJECT(plugin_prefs_win), 
"destroy",
+                                          
GTK_SIGNAL_FUNC(destroy_plugin_prefs), NULL );
                }
                else
                        eb_debug(DBG_MOD, "No prefs defined for %s\n", 
plugin_path);
@@ -1679,18 +1694,6 @@
                        GTK_SIGNAL_FUNC(plugin_selected), NULL);
 
        gtk_widget_show(label);
-       w=gtk_scrolled_window_new(NULL,NULL);
-       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w),
-               GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-       gtk_widget_set_usize(w, 300, 300);
-       gtk_widget_show(w);
-       SetPref("widget::plugin_prefs_w", w);
-       /*gtk_box_pack_start(GTK_BOX(vbox), w, TRUE, TRUE, 10);*/
-       plugin_prefs_win = gtk_window_new(GTK_WINDOW_DIALOG);
-       gtk_window_set_position(GTK_WINDOW(plugin_prefs_win), 
GTK_WIN_POS_MOUSE);
-       gtk_window_set_title(GTK_WINDOW(plugin_prefs_win), _("Plugin 
preferences"));
-       gtk_container_add(GTK_CONTAINER(plugin_prefs_win), w);
-       gtk_widget_hide(plugin_prefs_win);
        
        gtk_notebook_append_page(GTK_NOTEBOOK(prefs_note), vbox, 
gtk_label_new(_("Modules")));
        gtk_widget_show(vbox);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]