# HG changeset patch # User nadvornik # Date 1236508731 0 # Node ID bec57fa486f45fa6135f6a96382e3d6853c5b0b5 # Parent 79b32088ecc48f5871ac2b898fc01120dc743380 allow dropping of multiple keywords diff -r 79b32088ecc4 -r bec57fa486f4 src/bar_keywords.c --- a/src/bar_keywords.c Sun Mar 08 10:25:24 2009 +0000 +++ b/src/bar_keywords.c Sun Mar 08 10:38:51 2009 +0000 @@ -533,7 +533,8 @@ 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 @@ break; } default: - new_keyword = (gchar *)selection_data->data; + new_keywords = string_to_keywords_list((gchar *)selection_data->data); break; } @@ -603,10 +604,19 @@ 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,