summaryrefslogtreecommitdiff
path: root/src/trg-sortable-filtered-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-11-29 20:54:34 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-11-29 20:54:34 +0000
commit6df6b7c2a2383d01a6fc20e597f48b0168ccfeb5 (patch)
tree7c382f8112bacc08b45111acfca34d68b589697d /src/trg-sortable-filtered-model.c
parentd88835b13f6dcce872bb664e0aa8c206f7d4ae14 (diff)
extra fix on issue 167 - proxy the sort-column-changed event from the real sortable through the TrgSortableFilteredModel. GtkTreeViewColumn needs this event to display sort indicators.
Diffstat (limited to 'src/trg-sortable-filtered-model.c')
-rw-r--r--src/trg-sortable-filtered-model.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/trg-sortable-filtered-model.c b/src/trg-sortable-filtered-model.c
index c03776a..c7b3418 100644
--- a/src/trg-sortable-filtered-model.c
+++ b/src/trg-sortable-filtered-model.c
@@ -64,6 +64,12 @@ static void trg_sortable_filtered_model_tree_sortable_init(
trg_sortable_filtered_model_sort_has_default_sort_func;
}
+static void trg_sortable_filtered_model_sort_column_changed(GtkTreeSortable *realSortable,
+ GtkTreeSortable *fakeSortable)
+{
+ g_signal_emit_by_name (fakeSortable, "sort-column-changed");
+}
+
GtkTreeModel *
trg_sortable_filtered_model_new (GtkTreeSortable *child_model,
GtkTreePath *root)
@@ -71,10 +77,16 @@ trg_sortable_filtered_model_new (GtkTreeSortable *child_model,
g_return_val_if_fail (GTK_IS_TREE_MODEL (child_model), NULL);
g_return_val_if_fail (GTK_IS_TREE_SORTABLE (child_model), NULL);
- return g_object_new (TRG_TYPE_SORTABLE_FILTERED_MODEL,
+ GObject *obj = g_object_new (TRG_TYPE_SORTABLE_FILTERED_MODEL,
"child-model", GTK_TREE_MODEL(child_model),
"virtual-root", root,
NULL);
+
+ g_signal_connect (child_model, "sort-column-changed",
+ G_CALLBACK (trg_sortable_filtered_model_sort_column_changed),
+ obj);
+
+ return GTK_TREE_MODEL(obj);
}
static gboolean trg_sortable_filtered_model_sort_get_sort_column_id(