static void bar_pane_exif_entry_dnd_begin(GtkWidget *entry, GdkDragContext *context, gpointer data) { ExifEntry *ee = g_object_get_data(G_OBJECT(entry), "entry_data"); if (!ee) return; dnd_set_drag_label(entry, context, ee->key); }
static void bar_pane_keywords_dnd_begin(GtkWidget *tree_view, GdkDragContext *context, gpointer data) { GtkTreeIter iter; GtkTreeModel *model; GtkTreeIter child_iter; GtkTreeModel *keyword_tree; gchar *name; GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); if (!gtk_tree_selection_get_selected(sel, &model, &iter)) return; keyword_tree = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model)); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model), &child_iter, &iter); name = keyword_get_name(keyword_tree, &child_iter); dnd_set_drag_label(tree_view, context, name); g_free(name); }