diff options
author | Nelson Benítez León <nbenitezl+gnome@gmail.com> | 2015-01-11 01:11:14 +0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-01-13 19:01:46 -0500 |
commit | f26986a50aaa1eeaa53f6db80ceac33a1156e7b2 (patch) | |
tree | 4a850b3d67fec975a243652433fa68e55e30ef68 | |
parent | 54806d129514b4aabfbf1b8c290b7f097e5c39b1 (diff) | |
download | gtk+-f26986a50aaa1eeaa53f6db80ceac33a1156e7b2.tar.gz |
gtkplacessidebar: insert bookmark by dnd in correct position
Add needed COLUMN INDEX to "new bookmark" row based on previous
bookmark index plus one.
Fixes bug 742727
-rw-r--r-- | gtk/gtkplacessidebar.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index 23903a9ff3..f6faff6d2e 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -1690,14 +1690,33 @@ start_drop_feedback (GtkPlacesSidebar *sidebar, if (need_feedback_row) { GtkTreeIter iter; + GtkTreeIter iter_prev; + GtkTreePath *path_prev; + gint new_bookmark_col_index; + SectionType section_type; + + /* Use column index of previous bookmark to calculate index for "new bookmark" */ + path_prev = gtk_tree_path_new_from_indices (sidebar->new_bookmark_index - 1, -1); + if (gtk_tree_model_get_iter (GTK_TREE_MODEL (sidebar->store), &iter_prev, path_prev)) + gtk_tree_model_get (GTK_TREE_MODEL (sidebar->store), &iter_prev, + PLACES_SIDEBAR_COLUMN_SECTION_TYPE, §ion_type, + PLACES_SIDEBAR_COLUMN_INDEX, &new_bookmark_col_index, -1); + + if (section_type != SECTION_BOOKMARKS) + new_bookmark_col_index = 0; + else + new_bookmark_col_index++; sidebar->new_bookmark_index = new_bookmark_index; gtk_list_store_insert_with_values (sidebar->store, &iter, sidebar->new_bookmark_index, PLACES_SIDEBAR_COLUMN_ROW_TYPE, PLACES_DROP_FEEDBACK, PLACES_SIDEBAR_COLUMN_SECTION_TYPE, SECTION_BOOKMARKS, PLACES_SIDEBAR_COLUMN_NAME, _("New bookmark"), + PLACES_SIDEBAR_COLUMN_INDEX, new_bookmark_col_index, PLACES_SIDEBAR_COLUMN_NO_EJECT, TRUE, -1); + + gtk_tree_path_free (path_prev); } new_path = gtk_tree_path_new_from_indices (sidebar->new_bookmark_index, -1); |