aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog10
-rw-r--r--shell/e-shell-startup-wizard.c14
2 files changed, 24 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 819c4e0281..1542e8a4cf 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,13 @@
+2002-07-05 Ettore Perazzoli <ettore@ximian.com>
+
+ [Fix #22047, Crash after running the start-up wizard. The patch
+ was applied a while ago to the evolution-1-0-branch but not on
+ the trunk.]
+
+ * e-shell-startup-wizard.c (startup_wizard_cancel): Unref the
+ ETimezoneDialog.
+ (finish_func): Likewise.
+
2002-07-03 Ettore Perazzoli <ettore@ximian.com>
[Fixes #27354.]
diff --git a/shell/e-shell-startup-wizard.c b/shell/e-shell-startup-wizard.c
index 33e3297bd6..3de62204dc 100644
--- a/shell/e-shell-startup-wizard.c
+++ b/shell/e-shell-startup-wizard.c
@@ -363,6 +363,12 @@ finish_func (GnomeDruidPage *page,
/* Free data */
data->cancel = FALSE;
+
+ /* Need to do this otherwise the timezone widget gets destroyed but the
+ timezone object isn't, and we can get a crash like #22047. */
+ gtk_object_unref (GTK_OBJECT (data->timezone_page->etd));
+ data->timezone_page->etd = NULL;
+
gtk_widget_destroy (data->dialog);
gtk_main_quit ();
@@ -816,6 +822,14 @@ startup_wizard_cancel (GnomeDruid *druid,
{
/* Free data */
data->cancel = TRUE;
+
+ if (data->timezone_page->etd != NULL) {
+ /* Need to do this otherwise the timezone widget gets destroyed but the
+ timezone object isn't, and we can get a crash like #22047. */
+ gtk_object_unref (GTK_OBJECT (data->timezone_page->etd));
+ data->timezone_page->etd = NULL;
+ }
+
gtk_widget_destroy (data->dialog);
gtk_main_quit ();
}