diff options
author | Damon Chaplin <damon@ximian.com> | 2001-10-02 04:12:00 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2001-10-02 04:12:00 +0800 |
commit | 0586d60922ca2a7b21edd27d0f5a42feab4576c1 (patch) | |
tree | 02aa0d2af01b32ba9fcd661999a4fb9ef6a188f7 /calendar/gui/dialogs | |
parent | 8d3a2ebd284bbcde524a40054970c03ef7e07426 (diff) | |
download | gsoc2013-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.c | 11 |
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)); } |