forked from AuroraMiddleware/gtk
sortlistmodel: Make sort stable
The sort of the sortlistmodel is now stable with respect to the original list model. That means that if the sorter compares items as equal, the model will make sure those items keep the order they were in in the original model. Or in other words: The model guarantees a total order based on the item's position in the original model.
This commit is contained in:
parent
16ab648093
commit
ee3faf24b9
@ -181,8 +181,14 @@ _sort_func (gconstpointer item1,
|
||||
{
|
||||
GtkSortListEntry *entry1 = (GtkSortListEntry *) item1;
|
||||
GtkSortListEntry *entry2 = (GtkSortListEntry *) item2;
|
||||
GtkOrdering result;
|
||||
|
||||
return gtk_sorter_compare (GTK_SORTER (data), entry1->item, entry2->item);
|
||||
result = gtk_sorter_compare (GTK_SORTER (data), entry1->item, entry2->item);
|
||||
|
||||
if (result == GTK_ORDERING_EQUAL)
|
||||
result = g_sequence_iter_compare (entry1->unsorted_iter, entry2->unsorted_iter);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user