summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNelson Benítez León <nbenitezl+gnome@gmail.com>2015-01-11 01:11:14 +0500
committerMatthias Clasen <mclasen@redhat.com>2015-01-13 19:01:46 -0500
commitf26986a50aaa1eeaa53f6db80ceac33a1156e7b2 (patch)
tree4a850b3d67fec975a243652433fa68e55e30ef68
parent54806d129514b4aabfbf1b8c290b7f097e5c39b1 (diff)
downloadgtk+-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.c19
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, &section_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);