diff --git a/ChangeLog b/ChangeLog index a57830c4de..33be26c106 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-05-16 Kristian Rietveld + + * gtk/gtkpathbar.c (gtk_path_bar_dispose): cancel all pending handles + in the button list. (Fixes #341035, reported by William Jon McCann). + 2006-05-16 Kristian Rietveld * gtk/gtkfilechooserdefault.c diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index a57830c4de..33be26c106 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-05-16 Kristian Rietveld + + * gtk/gtkpathbar.c (gtk_path_bar_dispose): cancel all pending handles + in the button list. (Fixes #341035, reported by William Jon McCann). + 2006-05-16 Kristian Rietveld * gtk/gtkfilechooserdefault.c diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c index 6b87056edd..1e25b6b7cf 100644 --- a/gtk/gtkpathbar.c +++ b/gtk/gtkpathbar.c @@ -250,6 +250,7 @@ remove_settings_signal (GtkPathBar *path_bar, static void gtk_path_bar_dispose (GObject *object) { + GList *list; GtkPathBar *path_bar = GTK_PATH_BAR (object); remove_settings_signal (path_bar, gtk_widget_get_screen (GTK_WIDGET (object))); @@ -258,6 +259,15 @@ gtk_path_bar_dispose (GObject *object) gtk_file_system_cancel_operation (path_bar->set_path_handle); path_bar->set_path_handle = NULL; + for (list = path_bar->button_list; list; list = list->next) + { + ButtonData *button_data = BUTTON_DATA (list->data); + + if (button_data->handle) + gtk_file_system_cancel_operation (button_data->handle); + button_data->handle = NULL; + } + G_OBJECT_CLASS (gtk_path_bar_parent_class)->dispose (object); }