aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-tree.c')
-rw-r--r--widgets/table/e-tree.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 5f34e89fee..ba394d3f71 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -372,11 +372,9 @@ static gint
item_key_press (ETableItem *eti, int row, int col, GdkEvent *event, ETree *et)
{
int return_val = 0;
- ETreePath path = e_tree_table_adapter_node_at_row(et->etta, row);
GdkEventKey *key = (GdkEventKey *) event;
GdkEventButton click;
-
- path = e_tree_sorted_view_to_model_path(et->sorted, path);
+ ETreePath path;
switch (key->keyval) {
case GDK_Page_Down:
@@ -416,7 +414,17 @@ item_key_press (ETableItem *eti, int row, int col, GdkEvent *event, ETree *et)
(GdkEvent *) &click);
return_val = 1;
break;
+ case '=':
+ path = e_tree_table_adapter_node_at_row(et->etta, row);
+ e_tree_table_adapter_node_set_expanded (et->etta, path, TRUE);
+ break;
+ case '-':
+ path = e_tree_table_adapter_node_at_row(et->etta, row);
+ e_tree_table_adapter_node_set_expanded (et->etta, path, FALSE);
+ break;
default:
+ path = e_tree_table_adapter_node_at_row(et->etta, row);
+ path = e_tree_sorted_view_to_model_path(et->sorted, path);
gtk_signal_emit (GTK_OBJECT (et),
et_signals [KEY_PRESS],
row, path, col, event, &return_val);