diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gtkutils.c | 25 | ||||
-rw-r--r-- | src/gtkutils.h | 3 | ||||
-rw-r--r-- | src/summaryview.c | 9 |
3 files changed, 31 insertions, 6 deletions
diff --git a/src/gtkutils.c b/src/gtkutils.c index 6993314d..8e5c16f1 100644 --- a/src/gtkutils.c +++ b/src/gtkutils.c @@ -32,6 +32,10 @@ #include <gtk/gtkcombo.h> #include <gtk/gtkbindings.h> #include <gtk/gtkitemfactory.h> +#include <gtk/gtktreemodel.h> +#include <gtk/gtktreesortable.h> +#include <gtk/gtktreeview.h> +#include <gtk/gtkversion.h> #include <stdlib.h> #include <stdarg.h> @@ -541,6 +545,27 @@ gboolean gtkut_tree_row_reference_equal(GtkTreeRowReference *ref1, return (result == 0); } +void gtkut_tree_sortable_unset_sort_column_id(GtkTreeSortable *sortable) +{ +#if GTK_CHECK_VERSION(2, 6, 0) + gtk_tree_sortable_set_sort_column_id + (sortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, + GTK_SORT_ASCENDING); +#else + GtkTreeStore *store = GTK_TREE_STORE(sortable); + + g_return_if_fail(GTK_IS_TREE_STORE(sortable)); + + if (store->sort_column_id == -2 && store->order == GTK_SORT_ASCENDING) + return; + + store->sort_column_id = -2; + store->order = GTK_SORT_ASCENDING; + + gtk_tree_sortable_sort_column_changed(sortable); +#endif +} + gboolean gtkut_tree_view_find_collapsed_parent(GtkTreeView *treeview, GtkTreeIter *parent, GtkTreeIter *iter) diff --git a/src/gtkutils.h b/src/gtkutils.h index ae72db38..bb936c19 100644 --- a/src/gtkutils.h +++ b/src/gtkutils.h @@ -156,6 +156,9 @@ gboolean gtkut_tree_row_reference_get_iter gboolean gtkut_tree_row_reference_equal (GtkTreeRowReference *ref1, GtkTreeRowReference *ref2); +void gtkut_tree_sortable_unset_sort_column_id + (GtkTreeSortable *sortable); + gboolean gtkut_tree_view_find_collapsed_parent (GtkTreeView *treeview, GtkTreeIter *parent, diff --git a/src/summaryview.c b/src/summaryview.c index e6e2e0fc..864184e6 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -748,9 +748,8 @@ void summary_clear_list(SummaryView *summaryview) gtk_tree_store_clear(summaryview->store); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(summaryview->store)); - gtk_tree_sortable_set_sort_column_id - (GTK_TREE_SORTABLE(summaryview->store), - GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); + gtkut_tree_sortable_unset_sort_column_id + (GTK_TREE_SORTABLE(summaryview->store)); } void summary_clear_all(SummaryView *summaryview) @@ -1596,9 +1595,7 @@ void summary_sort(SummaryView *summaryview, if (col_type == -1) { item->sort_key = SORT_BY_NONE; item->sort_type = SORT_ASCENDING; - gtk_tree_sortable_set_sort_column_id - (sortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, - GTK_SORT_ASCENDING); + gtkut_tree_sortable_unset_sort_column_id(sortable); summary_set_column_titles(summaryview); summary_set_menu_sensitive(summaryview); return; |