aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/minicard/e-minicard-view.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-05-09 15:09:28 +0800
committerChris Lahey <clahey@src.gnome.org>2000-05-09 15:09:28 +0800
commit6692c3b3d49dbf23caeb6f4f8adecc8508a6d23c (patch)
tree24987a939bc1a06b840662e42a0cf4caecf095ad /addressbook/gui/minicard/e-minicard-view.c
parent3f6ddb02e81fcd90987bc19b5e495686443617f9 (diff)
downloadgsoc2013-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/minicard/e-minicard-view.c')
-rw-r--r--addressbook/gui/minicard/e-minicard-view.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/addressbook/gui/minicard/e-minicard-view.c b/addressbook/gui/minicard/e-minicard-view.c
index 13f3d01f26..5f76f15689 100644
--- a/addressbook/gui/minicard/e-minicard-view.c
+++ b/addressbook/gui/minicard/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