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
This commit is contained in:
Nelson Benítez León 2015-01-11 01:11:14 +05:00 committed by Matthias Clasen
parent 54806d1295
commit f26986a50a

View File

@ -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);