diff options
Diffstat (limited to 'addressbook/gui/contact-list-editor')
-rw-r--r-- | addressbook/gui/contact-list-editor/e-contact-list-editor.c | 13 | ||||
-rw-r--r-- | addressbook/gui/contact-list-editor/e-contact-list-model.c | 6 |
2 files changed, 14 insertions, 5 deletions
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index 0fec8f00ee..b9d0726136 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -586,12 +586,15 @@ e_contact_list_editor_new (EBook *book, all_contact_list_editors = g_slist_prepend (all_contact_list_editors, ce); g_object_weak_ref (G_OBJECT (ce), contact_list_editor_destroy_notify, ce); + gtk_object_ref (GTK_OBJECT (ce)); + gtk_object_sink (GTK_OBJECT (ce)); + g_object_set (ce, - "book", book, - "card", list_card, - "is_new_list", is_new_list, - "editable", editable, - NULL); + "book", book, + "card", list_card, + "is_new_list", is_new_list, + "editable", editable, + NULL); return ce; } diff --git a/addressbook/gui/contact-list-editor/e-contact-list-model.c b/addressbook/gui/contact-list-editor/e-contact-list-model.c index 91e2965d88..3e4264fa85 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-model.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-model.c @@ -171,6 +171,8 @@ e_contact_list_model_add_destination (EContactListModel *model, EDestination *de g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model)); g_return_if_fail (E_IS_DESTINATION (dest)); + e_table_model_pre_change (E_TABLE_MODEL (model)); + if (model->data_count + 1 >= model->data_alloc) { model->data_alloc *= 2; model->data = g_renew (EDestination*, model->data, model->data_alloc); @@ -218,6 +220,8 @@ e_contact_list_model_remove_row (EContactListModel *model, int row) g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model)); g_return_if_fail (0 <= row && row < model->data_count); + e_table_model_pre_change (E_TABLE_MODEL (model)); + g_object_unref (model->data[row]); memmove (model->data + row, model->data + row + 1, sizeof (EDestination*) * (model->data_count - row - 1)); model->data_count --; @@ -232,6 +236,8 @@ e_contact_list_model_remove_all (EContactListModel *model) g_return_if_fail (E_IS_CONTACT_LIST_MODEL (model)); + e_table_model_pre_change (E_TABLE_MODEL (model)); + for (i = 0; i < model->data_count; i ++) { g_object_unref (model->data[i]); model->data[i] = NULL; |