aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-table-click-to-add.c14
-rw-r--r--widgets/table/e-table-item.c2
2 files changed, 15 insertions, 1 deletions
diff --git a/widgets/table/e-table-click-to-add.c b/widgets/table/e-table-click-to-add.c
index ed22b5117c..d111df1cd9 100644
--- a/widgets/table/e-table-click-to-add.c
+++ b/widgets/table/e-table-click-to-add.c
@@ -319,15 +319,27 @@ etcta_event (GnomeCanvasItem *item, GdkEvent *e)
case GDK_3270_Enter:
if (etcta->row) {
ETableModel *one;
- e_table_selection_model_clear(etcta->selection);
e_table_one_commit(E_TABLE_ONE(etcta->one));
etcta_drop_one (etcta);
+ gtk_object_destroy(GTK_OBJECT(etcta->row));
+ etcta->row = NULL;
one = e_table_one_new(etcta->model);
etcta_add_one (etcta, one);
gtk_object_unref(GTK_OBJECT(one));
+ e_table_selection_model_clear(etcta->selection);
+
+ etcta->row = gnome_canvas_item_new(GNOME_CANVAS_GROUP(item),
+ e_table_item_get_type(),
+ "ETableHeader", etcta->eth,
+ "ETableModel", etcta->one,
+ "minimum_width", etcta->width,
+ "drawgrid", TRUE,
+ "table_selection_model", etcta->selection,
+ NULL);
+
e_table_item_set_cursor(E_TABLE_ITEM(etcta->row), 0, 0);
}
break;
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index a1afb2c3be..4eac94ed41 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -1361,6 +1361,8 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
gint ctrled = e->button.state & GDK_CONTROL_MASK;
gint cursor_row, cursor_col;
+ e_canvas_item_grab_focus(GNOME_CANVAS_ITEM(eti));
+
switch (e->button.button) {
case 1: /* Fall through. */
case 2: