diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ChangeLog | 7 | ||||
-rw-r--r-- | shell/evolution-folder-selector-button.c | 10 |
2 files changed, 17 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index d586926aff..659d5a191d 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,10 @@ +2002-09-30 Dan Winship <danw@ximian.com> + + * evolution-folder-selector-button.c (clicked): If we return from + evolution_shell_client_user_select_folder to find that our parent + window has been destroyed, unref it and bail out, since that means + we've been destroyed (and probably finalized) too. #31360 + 2002-09-26 Ettore Perazzoli <ettore@ximian.com> * e-local-storage.c (load_folder): Always return TRUE, even in the diff --git a/shell/evolution-folder-selector-button.c b/shell/evolution-folder-selector-button.c index 35e24e7d82..19fd5a69ae 100644 --- a/shell/evolution-folder-selector-button.c +++ b/shell/evolution-folder-selector-button.c @@ -163,6 +163,16 @@ clicked (GtkButton *button) (const char **)priv->possible_types, &return_folder); + /* If the parent gets destroyed despite our best efforts (eg, + * because its own parent got destroyed), then the folder + * selector button will have been destroyed too and we need + * to just bail out here. + */ + if (GTK_OBJECT_DESTROYED (parent_window)) { + gtk_object_unref (GTK_OBJECT (parent_window)); + return; + } + gtk_widget_set_sensitive (GTK_WIDGET (parent_window), TRUE); gtk_object_unref (GTK_OBJECT (parent_window)); |