Blob Blame History Raw
--- gnome-panel-2.18.0/gnome-panel/panel-run-dialog.c.fix-invalid-read	2007-04-04 15:35:14.000000000 -0400
+++ gnome-panel-2.18.0/gnome-panel/panel-run-dialog.c	2007-04-04 15:40:24.000000000 -0400
@@ -111,6 +111,8 @@
 
 static PanelRunDialog *static_dialog = NULL;
 
+static void panel_run_dialog_disconnect_pixmap (PanelRunDialog *dialog);
+
 static void
 panel_run_dialog_destroy (PanelRunDialog *dialog)
 {
@@ -165,6 +167,8 @@
 	if (dialog->completion)
 		g_completion_free (dialog->completion);
 	dialog->completion = NULL;
+
+	panel_run_dialog_disconnect_pixmap (dialog);
 	
 	g_free (dialog);
 }
@@ -1905,6 +1909,17 @@
 }
 
 static void
+panel_run_dialog_disconnect_pixmap (PanelRunDialog *dialog)
+{
+	g_signal_handlers_disconnect_by_func (dialog->pixmap,
+			                      G_CALLBACK (panel_run_dialog_style_set),
+			                      dialog);
+	g_signal_handlers_disconnect_by_func (dialog->pixmap,
+			                      G_CALLBACK (panel_run_dialog_screen_changed),
+			                      dialog);
+}
+
+static void
 panel_run_dialog_static_dialog_destroyed (PanelRunDialog *dialog)
 {
 	/* just reset the static dialog to NULL for next time */