aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/table/e-table-item.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 5230ab7771..aac9439030 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -93,6 +93,8 @@ inline static gint
model_to_view_row(ETableItem *eti, int row)
{
int i;
+ if (row == -1)
+ return -1;
if (eti->uses_source_model) {
ETableSubset *etss = E_TABLE_SUBSET(eti->table_model);
if (eti->row_guess >= 0 && eti->row_guess < etss->n_map) {
@@ -126,6 +128,8 @@ inline static gint
model_to_view_col(ETableItem *eti, int col)
{
int i;
+ if (col == -1)
+ return -1;
for (i = 0; i < eti->cols; i++) {
ETableCol *ecol = e_table_header_get_column (eti->header, i);
if (ecol->col_idx == col)
@@ -689,6 +693,10 @@ e_table_item_row_diff (ETableItem *eti, int start_row, int end_row)
int height_extra = eti->horizontal_draw_grid ? 1 : 0;
total = 0;
+ if (start_row < 0)
+ start_row = 0;
+ if (end_row > eti->rows)
+ end_row = eti->rows;
for (row = start_row; row < end_row; row++)
total += eti_row_height (eti, row) + height_extra;