From 40dc168114748c29cf48d649fe4313dac9ac80b4 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 3 Jan 2009 07:17:09 +0000 Subject: [PATCH] Don't assert when using the "unsorted" sort column id. * gtk/gtktreemodelsort.c: Don't assert when using the "unsorted" sort column id. svn path=/branches/gtk-2-14/; revision=22053 --- ChangeLog | 9 ++++++++- gtk/gtktreemodelsort.c | 46 ++++++++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index def2104713..7c221bc0f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,13 @@ 2009-01-03 Matthias Clasen - Merged from trunk: +` Merged from trunk: + + * gtk/gtktreemodelsort.c: Don't assert when using the "unsorted" + sort column id. + +2009-01-03 Matthias Clasen + +` Merged from trunk: Bug 558694 – Paned window splitter keynav broken diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c index 077b6023e7..1dbdda41f8 100644 --- a/gtk/gtktreemodelsort.c +++ b/gtk/gtktreemodelsort.c @@ -1318,29 +1318,32 @@ gtk_tree_model_sort_set_sort_column_id (GtkTreeSortable *sortable, { GtkTreeModelSort *tree_model_sort = (GtkTreeModelSort *)sortable; - if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) - { - GtkTreeDataSortHeader *header = NULL; - - header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list, - sort_column_id); - - /* we want to make sure that we have a function */ - g_return_if_fail (header != NULL); - g_return_if_fail (header->func != NULL); - } - else - g_return_if_fail (tree_model_sort->default_sort_func != NULL); - - if (tree_model_sort->sort_column_id == sort_column_id) + if (sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID) { if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) - { - if (tree_model_sort->order == order) - return; - } + { + GtkTreeDataSortHeader *header = NULL; + + header = _gtk_tree_data_list_get_header (tree_model_sort->sort_list, + sort_column_id); + + /* we want to make sure that we have a function */ + g_return_if_fail (header != NULL); + g_return_if_fail (header->func != NULL); + } else - return; + g_return_if_fail (tree_model_sort->default_sort_func != NULL); + + if (tree_model_sort->sort_column_id == sort_column_id) + { + if (sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) + { + if (tree_model_sort->order == order) + return; + } + else + return; + } } tree_model_sort->sort_column_id = sort_column_id; @@ -1696,6 +1699,9 @@ gtk_tree_model_sort_sort_level (GtkTreeModelSort *tree_model_sort, static void gtk_tree_model_sort_sort (GtkTreeModelSort *tree_model_sort) { + if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID) + return; + if (!tree_model_sort->root) return;