Patch for gnome-core/panel




There was a bug in the panel whereby if you edited a launcher
properties, using that launcher would crash the panel.

The problem here was that editting the properties free()ed the old
dentry, and created a new one, but a handler to the old one was
retained in the signal data. Patch to fix follows..

Index: gnome-core/panel/launcher.c
===================================================================
RCS file: /cvs/gnome/gnome-core/panel/launcher.c,v
retrieving revision 1.55
diff -u -r1.55 launcher.c
--- launcher.c	1998/09/05 05:55:18	1.55
+++ launcher.c	1998/10/04 07:14:13
@@ -142,9 +142,19 @@
 	if (page != -1)
 		return;
 	
+			/* remove the old launcher callback */
+	gtk_signal_disconnect_by_func(GTK_OBJECT(launcher->button),
+			(GtkSignalFunc) launch, launcher->dentry);
+
 	gnome_desktop_entry_free(launcher->dentry);
 	launcher->dentry =
 		gnome_dentry_get_dentry(GNOME_DENTRY_EDIT(launcher->dedit));
+
+			/* and install the new one with the right dentry pointer */
+	gtk_signal_connect (GTK_OBJECT(launcher->button),
+			    "clicked",
+			    (GtkSignalFunc) launch,
+			    launcher->dentry);
 
 	gtk_tooltips_set_tip (panel_tooltips,launcher->button,
 			      launcher->dentry->comment,NULL);











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