aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorDamon Chaplin <damon@ximian.com>2001-10-02 04:12:00 +0800
committerDamon Chaplin <damon@src.gnome.org>2001-10-02 04:12:00 +0800
commit0586d60922ca2a7b21edd27d0f5a42feab4576c1 (patch)
tree02aa0d2af01b32ba9fcd661999a4fb9ef6a188f7 /calendar/gui/dialogs
parent8d3a2ebd284bbcde524a40054970c03ef7e07426 (diff)
downloadgsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar.gz
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar.bz2
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar.lz
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar.xz
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.tar.zst
gsoc2013-evolution-0586d60922ca2a7b21edd27d0f5a42feab4576c1.zip
unref the page objects here, instead of in close_dialog(). (This was fixed
2001-10-01 Damon Chaplin <damon@ximian.com> * gui/dialogs/comp-editor.c (comp_editor_destroy): unref the page objects here, instead of in close_dialog(). (This was fixed a while ago, but accidentally reverted.) Fixes bug #7543. svn path=/trunk/; revision=13278
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 593544c11f..79f692223d 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -243,6 +243,7 @@ comp_editor_destroy (GtkObject *object)
{
CompEditor *editor;
CompEditorPrivate *priv;
+ GList *l;
editor = COMP_EDITOR (object);
priv = editor->priv;
@@ -254,6 +255,12 @@ comp_editor_destroy (GtkObject *object)
priv->window = NULL;
}
+ /* We want to destroy the pages after the widgets get destroyed,
+ since they have lots of signal handlers connected to the widgets
+ with the pages as the data. */
+ for (l = priv->pages; l != NULL; l = l->next)
+ gtk_object_unref (GTK_OBJECT (l->data));
+
if (priv->comp) {
gtk_object_unref (GTK_OBJECT (priv->comp));
priv->comp = NULL;
@@ -899,15 +906,11 @@ static void
close_dialog (CompEditor *editor)
{
CompEditorPrivate *priv;
- GList *l;
priv = editor->priv;
g_assert (priv->window != NULL);
- for (l = priv->pages; l != NULL; l = l->next)
- gtk_object_unref (GTK_OBJECT (l->data));
-
gtk_object_destroy (GTK_OBJECT (editor));
}