places sidebar: compare bookmarks by index

GtkPlacesSidebar applies a sorting function on
the tree model that does not consider the case
of bookmarks, which are sorted by their indexes.

By adding the bookmarks corner case and comparing
then by their indexes, GtkPlacesSidebar can sort
the bookmarks properly in the order they're saved.

https://bugzilla.gnome.org/show_bug.cgi?id=744589
This commit is contained in:
Georges Basile Stavracas Neto 2015-03-04 17:12:40 -03:00
parent 17bc7aaefd
commit ce9a5a3fec

View File

@ -3830,6 +3830,20 @@ places_sidebar_sort_func (GtkTreeModel *model,
g_free (name_a);
g_free (name_b);
}
else if ((place_type_a == place_type_b) &&
(place_type_a == PLACES_BOOKMARK))
{
gint pos_a, pos_b;
gtk_tree_model_get (model, iter_a,
PLACES_SIDEBAR_COLUMN_INDEX, &pos_a,
-1);
gtk_tree_model_get (model, iter_b,
PLACES_SIDEBAR_COLUMN_INDEX, &pos_b,
-1);
retval = pos_a - pos_b;
}
else if (place_type_a == PLACES_CONNECT_TO_SERVER)
{
retval = 1;