diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-11-29 20:54:34 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-11-29 20:54:34 +0000 |
commit | 6df6b7c2a2383d01a6fc20e597f48b0168ccfeb5 (patch) | |
tree | 7c382f8112bacc08b45111acfca34d68b589697d /src/trg-sortable-filtered-model.c | |
parent | d88835b13f6dcce872bb664e0aa8c206f7d4ae14 (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.c | 14 |
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( |