diff options
author | Dan Winship <danw@src.gnome.org> | 2002-10-01 02:21:26 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2002-10-01 02:21:26 +0800 |
commit | b887e5c2f6fdb8e7437093c3bc49fd439155e346 (patch) | |
tree | 4398b98313003716fc0dcde086b0f1331ddba312 | |
parent | 6d5496e6141bd4afd720e9c125855f4ca7fbe759 (diff) | |
download | gsoc2013-evolution-b887e5c2f6fdb8e7437093c3bc49fd439155e346.tar.gz gsoc2013-evolution-b887e5c2f6fdb8e7437093c3bc49fd439155e346.tar.zst gsoc2013-evolution-b887e5c2f6fdb8e7437093c3bc49fd439155e346.zip |
If we return from evolution_shell_client_user_select_folder to find that
* 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
svn path=/trunk/; revision=18264
-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)); |