static void
contact_list_view_drag_got_contact (EmpathyTpContactFactory *factory,
- GList *contacts,
+ EmpathyContact *contact,
+ const GError *error,
gpointer user_data,
GObject *view)
{
EmpathyContactListViewPriv *priv = GET_PRIV (view);
DndGetContactData *data = user_data;
EmpathyContactList *list;
- EmpathyContact *contact = contacts->data;
+ if (error != NULL) {
+ DEBUG ("Error: %s", error->message);
+ return;
+ }
DEBUG ("contact %s (%d) dragged from '%s' to '%s'",
empathy_contact_get_id (contact),
data->old_group = old_group;
data->action = context->action;
- empathy_tp_contact_factory_get_from_ids (factory, 1, &contact_id,
+ /* FIXME: We should probably wait for the cb before calling
+ * gtk_drag_finish */
+ empathy_tp_contact_factory_get_from_id (factory, contact_id,
contact_list_view_drag_got_contact,
data, (GDestroyNotify) contact_list_view_dnd_get_contact_free,
G_OBJECT (view));
gtk_tree_path_free (src_path);
- contact = empathy_contact_list_view_get_selected (EMPATHY_CONTACT_LIST_VIEW (widget));
+ contact = empathy_contact_list_view_dup_selected (EMPATHY_CONTACT_LIST_VIEW (widget));
if (!contact) {
return;
}
}
EmpathyContact *
-empathy_contact_list_view_get_selected (EmpathyContactListView *view)
+empathy_contact_list_view_dup_selected (EmpathyContactListView *view)
{
EmpathyContactListViewPriv *priv;
GtkTreeSelection *selection;
EmpathyContactListViewPriv *priv = GET_PRIV (view);
EmpathyContact *contact;
- contact = empathy_contact_list_view_get_selected (view);
+ contact = empathy_contact_list_view_dup_selected (view);
if (contact) {
gchar *text;
g_return_val_if_fail (EMPATHY_IS_CONTACT_LIST_VIEW (view), NULL);
- contact = empathy_contact_list_view_get_selected (view);
+ contact = empathy_contact_list_view_dup_selected (view);
if (!contact) {
return NULL;
}