diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-09-24 17:15:17 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-09-29 17:00:51 +0800 |
commit | e5bf164997d4580ae94fc1f2471a3bce6ac617b8 (patch) | |
tree | 29a03a00ecf2b2479a8e46545c7264e1f8ecee8a /libempathy-gtk/empathy-contact-widget.c | |
parent | c58139d810f6fc2b52637ae19839b92c3063bb78 (diff) | |
download | gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar.gz gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar.bz2 gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar.lz gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar.xz gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.tar.zst gsoc2013-empathy-e5bf164997d4580ae94fc1f2471a3bce6ac617b8.zip |
Use tp_contact_info_field_copy() instead of creating a new field if found
Diffstat (limited to 'libempathy-gtk/empathy-contact-widget.c')
-rw-r--r-- | libempathy-gtk/empathy-contact-widget.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c index 3206af44b..f20ec81c4 100644 --- a/libempathy-gtk/empathy-contact-widget.c +++ b/libempathy-gtk/empathy-contact-widget.c @@ -293,7 +293,6 @@ contact_widget_details_update_edit (EmpathyContactWidget *information) TpContactInfoField *field; InfoFieldData *field_data; GList *ll; - GStrv value = NULL; GtkWidget *w; field_data = find_info_field_data (spec->name); @@ -308,13 +307,20 @@ contact_widget_details_update_edit (EmpathyContactWidget *information) { field = ll->data; if (!tp_strdiff (field->field_name, spec->name)) - { - value = field->field_value; - break; - } + break; + } + + if (field != NULL) + { + /* We found the field, make a copy for the details_to_set list */ + field = tp_contact_info_field_copy (field); + } + else + { + field = tp_contact_info_field_new (spec->name, spec->parameters, + NULL); } - field = tp_contact_info_field_new (spec->name, spec->parameters, value); information->details_to_set = g_list_prepend (information->details_to_set, field); |