aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-widget.c
diff options
context:
space:
mode:
authorxclaesse <xclaesse@4ee84921-47dd-4033-b63a-18d7a039a3e4>2008-01-24 03:35:29 +0800
committerxclaesse <xclaesse@4ee84921-47dd-4033-b63a-18d7a039a3e4>2008-01-24 03:35:29 +0800
commitd823a47ae7ec95b3411a09649b5b6c7d838ccc2a (patch)
treee21b4c451c2a792febf94cbddf443a22f53db532 /libempathy-gtk/empathy-contact-widget.c
parentcda9176a898146402dade6aaee8d64fdc52535b6 (diff)
downloadgsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar.gz
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar.bz2
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar.lz
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar.xz
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.tar.zst
gsoc2013-empathy-d823a47ae7ec95b3411a09649b5b6c7d838ccc2a.zip
Add a public method to change the contact showed.
git-svn-id: svn+ssh://svn.gnome.org/svn/empathy/trunk@598 4ee84921-47dd-4033-b63a-18d7a039a3e4
Diffstat (limited to 'libempathy-gtk/empathy-contact-widget.c')
-rw-r--r--libempathy-gtk/empathy-contact-widget.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index 51d17bfb7..a03571d9a 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -224,6 +224,23 @@ empathy_contact_widget_get_contact (GtkWidget *widget)
}
void
+empathy_contact_widget_set_contact (GtkWidget *widget,
+ EmpathyContact *contact)
+{
+ EmpathyContactWidget *information;
+
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+ g_return_if_fail (EMPATHY_IS_CONTACT (contact));
+
+ information = g_object_get_data (G_OBJECT (widget), "EmpathyContactWidget");
+ if (!information) {
+ return;
+ }
+
+ contact_widget_set_contact (information, contact);
+}
+
+void
empathy_contact_widget_set_account_filter (GtkWidget *widget,
EmpathyAccountChooserFilterFunc filter,
gpointer user_data)
@@ -289,6 +306,12 @@ static void
contact_widget_set_contact (EmpathyContactWidget *information,
EmpathyContact *contact)
{
+ if (contact == information->contact ||
+ (contact && information->contact &&
+ empathy_contact_equal (contact, information->contact))) {
+ return;
+ }
+
contact_widget_remove_contact (information);
if (contact) {
information->contact = g_object_ref (contact);