From e0a06986823081a727a4413b7e2ff562fd6618be Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Sun, 8 Mar 2009 10:38:51 +0000 Subject: [PATCH] allow dropping of multiple keywords --- src/bar_keywords.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/bar_keywords.c b/src/bar_keywords.c index 672d1635..fdc2eadf 100644 --- a/src/bar_keywords.c +++ b/src/bar_keywords.c @@ -533,7 +533,8 @@ static void bar_pane_keywords_dnd_receive(GtkWidget *tree_view, GdkDragContext * GtkTreeModel *keyword_tree; gboolean src_valid = FALSE; - gchar *new_keyword = NULL; + GList *new_keywords = NULL; + GList *work; /* iterators for keyword_tree */ GtkTreeIter src_kw_iter; @@ -560,7 +561,7 @@ static void bar_pane_keywords_dnd_receive(GtkWidget *tree_view, GdkDragContext * break; } default: - new_keyword = (gchar *)selection_data->data; + new_keywords = string_to_keywords_list((gchar *)selection_data->data); break; } @@ -603,10 +604,19 @@ static void bar_pane_keywords_dnd_receive(GtkWidget *tree_view, GdkDragContext * keyword_move_recursive(GTK_TREE_STORE(keyword_tree), &new_kw_iter, &src_kw_iter); } - if (new_keyword) + work = new_keywords; + while (work) { - keyword_set(GTK_TREE_STORE(keyword_tree), &new_kw_iter, new_keyword, TRUE); + keyword_set(GTK_TREE_STORE(keyword_tree), &new_kw_iter, work->data, TRUE); + work = work->next; + if (work) + { + GtkTreeIter add; + gtk_tree_store_insert_after(GTK_TREE_STORE(keyword_tree), &add, NULL, &new_kw_iter); + new_kw_iter = add; + } } + string_list_free(new_keywords); } static gint bar_pane_keywords_dnd_motion(GtkWidget *tree_view, GdkDragContext *context, -- 2.20.1