implement stable sort for lists

also change sort_workspaces() to use it
This commit is contained in:
Zandr Martin 2016-06-02 15:48:14 -05:00
parent 09670fc1a7
commit 9ccc92705e
4 changed files with 64 additions and 5 deletions

View file

@ -20,5 +20,6 @@ void list_qsort(list_t *list, int compare(const void *left, const void *right));
// Return index for first item in list that returns 0 for given compare
// function or -1 if none matches.
int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to);
// stable sort since qsort is not guaranteed to be stable
void list_stable_sort(list_t *list, int compare(const void *a, const void *b));
#endif

View file

@ -16,7 +16,7 @@ void get_absolute_position(swayc_t *container, struct wlc_point *point);
// given wlc_point.
void get_absolute_center_position(swayc_t *container, struct wlc_point *point);
int sort_workspace_cmp_qsort(const void *a, const void *b);
// stable sort workspaces on this output
void sort_workspaces(swayc_t *output);
#endif