aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-table-header-item.c13
-rw-r--r--widgets/table/e-table-item.c1
2 files changed, 14 insertions, 0 deletions
diff --git a/widgets/table/e-table-header-item.c b/widgets/table/e-table-header-item.c
index 1ff89a306d..3ef0a80b35 100644
--- a/widgets/table/e-table-header-item.c
+++ b/widgets/table/e-table-header-item.c
@@ -1076,6 +1076,18 @@ ethi_popup_sort_descending(GtkWidget *widget, EthiHeaderInfo *info)
}
static void
+ethi_popup_unsort(GtkWidget *widget, EthiHeaderInfo *info)
+{
+ int length;
+ int i;
+ int found = FALSE;
+ ETableHeaderItem *ethi = info->ethi;
+
+ e_table_sort_info_grouping_truncate(ethi->sort_info, 0);
+ e_table_sort_info_sorting_truncate(ethi->sort_info, 0);
+}
+
+static void
ethi_popup_group_field(GtkWidget *widget, EthiHeaderInfo *info)
{
ETableCol *col;
@@ -1137,6 +1149,7 @@ ethi_popup_customize_view(GtkWidget *widget, EthiHeaderInfo *info)
static EPopupMenu ethi_context_menu [] = {
{ "Sort Ascending", NULL, GTK_SIGNAL_FUNC(ethi_popup_sort_ascending), 0},
{ "Sort Descending", NULL, GTK_SIGNAL_FUNC(ethi_popup_sort_descending), 0},
+ { "Unsort", NULL, GTK_SIGNAL_FUNC(ethi_popup_unsort), 0},
{ "", NULL, GTK_SIGNAL_FUNC(NULL), 0},
{ "Group By This Field", NULL, GTK_SIGNAL_FUNC(ethi_popup_group_field), 0},
{ "Group By Box", NULL, GTK_SIGNAL_FUNC(ethi_popup_group_box), 1},
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 9df3b913db..9eca340472 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -1663,6 +1663,7 @@ eti_selection (GnomeCanvasItem *item, int flags, gpointer data)
eti_request_region_show (eti, col, view_row, col, view_row);
}
if ((cursored) && (flags & E_CANVAS_ITEM_SELECTION_CURSOR) == 0) {
+ e_table_item_leave_edit(eti);
eti->cursor_row = -1;
eti->cursor_col = -1;
}