static void userlist_dnd_drop (GtkTreeView *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint ttime, gpointer userdata) { struct User *user; GtkTreePath *path; GtkTreeModel *model; GtkTreeIter iter; if (!gtk_tree_view_get_path_at_pos (widget, x, y, &path, NULL, NULL, NULL)) return; model = gtk_tree_view_get_model (widget); if (!gtk_tree_model_get_iter (model, &iter, path)) return; gtk_tree_model_get (model, &iter, COL_USER, &user, -1); mg_dnd_drop_file (current_sess, user->nick, selection_data->data); }
static void userlist_dnd_drop (GtkTreeView *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint ttime, gpointer userdata) { struct User *user; GtkTreePath *path; if (!gtk_tree_view_get_path_at_pos (widget, x, y, &path, NULL, NULL, NULL)) return; GtkTreePathPtr path_ptr(path); auto model = gtk_tree_view_get_model (widget); GtkTreeIter iter; if (!gtk_tree_model_get_iter (model, &iter, path)) return; gtk_tree_model_get (model, &iter, COL_USER, &user, -1); auto data = gtk_selection_data_get_data (selection_data); if (data) mg_dnd_drop_file (current_sess, user->nick.c_str(), reinterpret_cast<const char*>(data)); }