aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-widget.c
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2009-03-29 16:25:41 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2009-03-29 16:25:41 +0800
commitc7574e207df76dcb23875af5c6cdbf684023f789 (patch)
tree1d9b8285a86b0550518aec56012f74ab63c6a1a7 /libempathy-gtk/empathy-contact-widget.c
parent9ec50f65cebd0803269942fb970d6c253d184e17 (diff)
downloadgsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar.gz
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar.bz2
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar.lz
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar.xz
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.tar.zst
gsoc2013-empathy-c7574e207df76dcb23875af5c6cdbf684023f789.zip
Use empathy_contact_call_when_ready instead of _run_ API. Fixes bug #561247 and
From: Xavier Claessens <xclaesse@gmail.com> svn path=/trunk/; revision=2748
Diffstat (limited to 'libempathy-gtk/empathy-contact-widget.c')
-rw-r--r--libempathy-gtk/empathy-contact-widget.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index 07058e4bc..f8ff36731 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -42,6 +42,9 @@
#include "empathy-avatar-image.h"
#include "empathy-ui-utils.h"
+#define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
+#include <libempathy/empathy-debug.h>
+
/* Delay before updating the widget when the id entry changed (seconds) */
#define ID_CHANGED_TIMEOUT 1
@@ -688,6 +691,19 @@ contact_widget_contact_update (EmpathyContactWidget *information)
}
static void
+contact_widget_change_contact_cb (EmpathyContact *contact,
+ const GError *error,
+ gpointer information,
+ GObject *weak_object)
+{
+ if (error)
+ DEBUG ("Error: %s", error->message);
+ else
+ contact_widget_set_contact (information, contact);
+ g_object_unref (contact);
+}
+
+static void
contact_widget_change_contact (EmpathyContactWidget *information)
{
EmpathyContact *contact;
@@ -717,12 +733,13 @@ contact_widget_change_contact (EmpathyContactWidget *information)
if (contact)
{
- empathy_contact_run_until_ready (contact,
+ /* Give the contact ref to the callback */
+ empathy_contact_call_when_ready (contact,
EMPATHY_CONTACT_READY_HANDLE |
EMPATHY_CONTACT_READY_ID,
- NULL);
- contact_widget_set_contact (information, contact);
- g_object_unref (contact);
+ contact_widget_change_contact_cb,
+ information, NULL,
+ G_OBJECT (information->vbox_contact_widget));
}
}