aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-table-sorting-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-table-sorting-utils.c')
-rw-r--r--e-util/e-table-sorting-utils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/e-util/e-table-sorting-utils.c b/e-util/e-table-sorting-utils.c
index 494ebf4b7d..972a3fc2d2 100644
--- a/e-util/e-table-sorting-utils.c
+++ b/e-util/e-table-sorting-utils.c
@@ -391,6 +391,24 @@ e_table_sorting_utils_tree_sort (ETreeModel *source,
map_table[i] = map_copy[map[i]];
}
+ for (j = 0; j < cols; j++) {
+ ETableColumnSpecification *spec;
+ ETableCol *col;
+
+ spec = e_table_sort_info_sorting_get_nth (
+ sort_info, j, &closure.sort_type[j]);
+
+ col = e_table_header_get_column_by_spec (full_header, spec);
+ if (col == NULL) {
+ gint last = e_table_header_count (full_header) - 1;
+ col = e_table_header_get_column (full_header, last);
+ }
+
+ for (i = 0; i < count; i++) {
+ e_tree_model_free_value (source, col->spec->compare_col, closure.vals[i * cols + j]);
+ }
+ }
+
g_free (map);
g_free (map_copy);