return ret;
}
+static void
+groups_change_group_cb (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ FolksGroups *groups = FOLKS_GROUPS (source);
+ GError *error = NULL;
+
+ folks_groups_change_group_finish (groups, result, &error);
+ if (error != NULL)
+ {
+ g_warning ("failed to change group: %s", error->message);
+ g_clear_error (&error);
+ }
+}
+
static void
individual_view_handle_drag (EmpathyIndividualView *self,
FolksIndividual *individual,
}
if (new_group != NULL)
- folks_groups_change_group (FOLKS_GROUPS (individual), new_group, TRUE);
+ folks_groups_change_group (FOLKS_GROUPS (individual), new_group, TRUE,
+ groups_change_group_cb, NULL);
if (old_group != NULL && action == GDK_ACTION_MOVE)
- folks_groups_change_group (FOLKS_GROUPS (individual), old_group, FALSE);
+ folks_groups_change_group (FOLKS_GROUPS (individual), old_group, FALSE,
+ groups_change_group_cb, NULL);
}
static gboolean
not groups.
*/
FolksIndividual *individual;
+ EmpathyCapabilities caps = EMPATHY_CAPABILITIES_NONE;
+
gtk_tree_model_get (model, &iter,
EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual, -1);
+ if (individual != NULL)
+ {
+ EmpathyContact *contact = NULL;
+
+ contact = empathy_contact_dup_from_folks_individual (individual);
+ caps = empathy_contact_get_capabilities (contact);
+
+ tp_clear_object (&contact);
+ }
+
if (individual != NULL &&
folks_individual_is_online (individual) &&
- (folks_individual_get_capabilities (individual) &
- FOLKS_CAPABILITIES_FLAGS_FILE_TRANSFER))
+ (caps & EMPATHY_CAPABILITIES_FT))
{
gdk_drag_status (context, GDK_ACTION_COPY, time_);
gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget),