diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-05-09 15:09:28 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-05-09 15:09:28 +0800 |
commit | 6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c (patch) | |
tree | 24987a939bc1a06b840662e42a0cf4caecf095ad /addressbook/gui/widgets/e-minicard-view.c | |
parent | 3f6ddb02e81fcd90987bc19b5e495686443617f9 (diff) | |
download | gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar.gz gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar.bz2 gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar.lz gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar.xz gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.tar.zst gsoc2013-evolution-6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c.zip |
Rearranged order of things getting destroyed.
2000-05-09 Christopher James Lahey <clahey@helixcode.com>
* gui/component/e-addressbook-model.c: Rearranged order of things
getting destroyed.
* gui/minicard/e-minicard-view.c: Rearranged order of things
getting destroyed. Don't set attributes of non-null or destroyed
items. Destroy parent object when destroyed. Maintain ref_count
of items in list.
* gui/minicard/e-minicard.c: Don't set attributes of non-null
items.
* gui/minicard/e-reflow-sorted.c: Maintain ref_count of items in
list.
* gui/minicard/e-reflow.c: Maintain ref_count of items in list.
Destroy parent object when destroyed.
svn path=/trunk/; revision=2935
Diffstat (limited to 'addressbook/gui/widgets/e-minicard-view.c')
-rw-r--r-- | addressbook/gui/widgets/e-minicard-view.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c index 13f3d01f26..5f76f15689 100644 --- a/addressbook/gui/widgets/e-minicard-view.c +++ b/addressbook/gui/widgets/e-minicard-view.c @@ -126,10 +126,12 @@ modify_card(EBookView *book_view, const GList *cards, EMinicardView *view) ECard *card = cards->data; gchar *id = e_card_get_id(card); GnomeCanvasItem *item = e_reflow_sorted_get_item(E_REFLOW_SORTED(view), id); - gnome_canvas_item_set(item, - "card", card, - NULL); - e_reflow_sorted_reorder_item(E_REFLOW_SORTED(view), id); + if (item && !GTK_OBJECT_DESTROYED(item)) { + gnome_canvas_item_set(item, + "card", card, + NULL); + e_reflow_sorted_reorder_item(E_REFLOW_SORTED(view), id); + } } } @@ -169,6 +171,7 @@ book_view_loaded (EBook *book, EBookStatus status, EBookView *book_view, gpointe "card_changed", GTK_SIGNAL_FUNC(modify_card), view); + g_list_foreach(E_REFLOW(view)->items, (GFunc) gtk_object_unref, NULL); g_list_foreach(E_REFLOW(view)->items, (GFunc) gtk_object_destroy, NULL); g_list_free(E_REFLOW(view)->items); E_REFLOW(view)->items = NULL; @@ -242,8 +245,6 @@ e_minicard_view_destroy (GtkObject *object) if (view->get_view_idle) g_source_remove(view->get_view_idle); - if (view->book) - gtk_object_unref(GTK_OBJECT(view->book)); if (view->book_view && view->create_card_id) gtk_signal_disconnect(GTK_OBJECT (view->book_view), view->create_card_id); @@ -253,8 +254,12 @@ e_minicard_view_destroy (GtkObject *object) if (view->book_view && view->modify_card_id) gtk_signal_disconnect(GTK_OBJECT (view->book_view), view->modify_card_id); + if (view->book) + gtk_object_unref(GTK_OBJECT(view->book)); if (view->book_view) gtk_object_unref(GTK_OBJECT(view->book_view)); + + GTK_OBJECT_CLASS(parent_class)->destroy (object); } void |