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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user