aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-10 05:30:20 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-10 05:30:20 +0000
commitdb552efbbe847365a84b7a18e01f9365d405e410 (patch)
tree3c35d208d0e17803f625b7d2ffc505e78b8eb887
parent07e70251d3521861d54cdb83748ce6c7f637f44e (diff)
fixed compilation failure on GTK+ 2.4.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@239 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.ja6
-rw-r--r--src/gtkutils.c25
-rw-r--r--src/gtkutils.h3
-rw-r--r--src/summaryview.c9
5 files changed, 43 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 84ae0cb0..f4934a20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-10
+
+ * src/summaryview.c
+ src/gtkutils.[ch]: fixed compilation failure on GTK+ 2.4
+ (GTK+ 2.4 doesn't provide the way to unset the sort setting).
+
2005-05-09
* src/editjpilot.c
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 6d323600..5742030d 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,9 @@
+2005-05-10
+
+ * src/summaryview.c
+ src/gtkutils.[ch]: GTK+ 2.4 でコンパイルできないのを修正
+ (GTK+ 2.4 はソートの設定を解除する方法を提供していない)。
+
2005-05-09
* src/editjpilot.c
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;