aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-table-item.c')
-rw-r--r--widgets/table/e-table-item.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 8e6103427a..2c66260ac5 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -679,7 +679,7 @@ eti_table_model_row_changed (ETableModel *table_model, int row, ETableItem *eti)
return;
}
- eti_request_region_redraw (eti, 0, row, eti->cols, row, 0);
+ eti_request_region_redraw (eti, 0, row, eti->cols - 1, row, 0);
}
static void
@@ -692,7 +692,7 @@ eti_table_model_cell_changed (ETableModel *table_model, int col, int row, ETable
return;
}
- eti_request_region_redraw (eti, 0, row, eti->cols -1, row, 0);
+ eti_request_region_redraw (eti, 0, row, eti->cols - 1, row, 0);
}
static void
@@ -1496,6 +1496,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
switch (e->type){
case GDK_BUTTON_PRESS: {
double x1, y1;
+ GdkEventButton button;
int col, row;
gint cursor_row, cursor_col;
@@ -1513,15 +1514,22 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
if (!find_cell (eti, e->button.x, e->button.y, &col, &row, &x1, &y1))
return TRUE;
- return_val = FALSE;
+ ecell_view = eti->cell_views [col];
+ button = *(GdkEventButton *)e;
+ button.x = x1;
+ button.y = y1;
- gtk_signal_emit (GTK_OBJECT (eti), eti_signals [CLICK],
- row, view_to_model_col(eti, col), e, &return_val);
+ return_val = e_cell_event (ecell_view, (GdkEvent *) &button, view_to_model_col(eti, col), col, row, 0);
+ if (return_val)
+ return TRUE;
+ return_val = FALSE;
+ gtk_signal_emit (GTK_OBJECT (eti), eti_signals [CLICK],
+ row, view_to_model_col(eti, col), &button, &return_val);
if (return_val)
return TRUE;
- e_table_selection_model_do_something(eti->selection, view_to_model_row(eti, row), view_to_model_col(eti, col), e->button.state);
+ e_table_selection_model_do_something(eti->selection, view_to_model_row(eti, row), view_to_model_col(eti, col), button.state);
gtk_object_get(GTK_OBJECT(eti->selection),
"cursor_row", &cursor_row,
@@ -1534,16 +1542,12 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
e_table_item_enter_edit (eti, col, row);
}
- ecell_view = eti->cell_views [col];
-
/*
* Adjust the event positions
*/
- e->button.x = x1;
- e->button.y = y1;
-
- return_val = e_cell_event (ecell_view, e,
- view_to_model_col(eti, col), col, row);
+
+ return_val = e_cell_event (ecell_view, (GdkEvent *) &button,
+ view_to_model_col(eti, col), col, row, E_CELL_EDITING);
}
break;
@@ -1603,7 +1607,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
e->button.y = y1;
return_val = e_cell_event (ecell_view, e,
- view_to_model_col(eti, col), col, row);
+ view_to_model_col(eti, col), col, row, E_CELL_EDITING);
}
break;
case 3:
@@ -1666,7 +1670,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
e->motion.y = y1;
return_val = e_cell_event (ecell_view, e,
- view_to_model_col(eti, col), col, row);
+ view_to_model_col(eti, col), col, row, E_CELL_EDITING);
}
break;
}
@@ -1757,7 +1761,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
ecell_view = eti->cell_views [eti->editing_col];
return_val = e_cell_event (ecell_view, e,
view_to_model_col(eti, eti->editing_col),
- eti->editing_col, eti->editing_row);
+ eti->editing_col, eti->editing_row, E_CELL_EDITING);
#endif
}
return_val = FALSE;
@@ -1785,7 +1789,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
ecell_view = eti->cell_views [eti->editing_col];
return_val = e_cell_event (ecell_view, e,
view_to_model_col(eti, eti->editing_col),
- eti->editing_col, eti->editing_row);
+ eti->editing_col, eti->editing_row, E_CELL_EDITING);
}
}
break;
@@ -1806,7 +1810,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
ecell_view = eti->cell_views [eti->editing_col];
return_val = e_cell_event (ecell_view, e,
view_to_model_col(eti, eti->editing_col),
- eti->editing_col, eti->editing_row);
+ eti->editing_col, eti->editing_row, E_CELL_EDITING);
}
break;
}