diff options
Diffstat (limited to 'render/box.c')
-rw-r--r-- | render/box.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/render/box.c b/render/box.c index 13480ad2a..dca53b4e9 100644 --- a/render/box.c +++ b/render/box.c @@ -1170,10 +1170,8 @@ void box_normalise_table_row(struct box *row, } /* skip columns with cells spanning from above */ - while ((*row_span)[columns] != 0) { - (*row_span)[columns]--; + while ((*row_span)[columns] != 0) columns++; - } cell->start_column = columns; if (*table_columns < columns + cell->columns) { *table_columns = columns + cell->columns; @@ -1183,10 +1181,14 @@ void box_normalise_table_row(struct box *row, (*row_span)[*table_columns] = 0; /* sentinel */ } for (i = 0; i != cell->columns; i++) - (*row_span)[columns + i] = cell->rows - 1; + (*row_span)[columns + i] = cell->rows; columns += cell->columns; } + for (i = 0; i != *table_columns; i++) + if ((*row_span)[i] != 0) + (*row_span)[i]--; + /* if all columns have a rowspan, shrink it to the lowest equivalent */ min = (*row_span)[0]; for (i = 1; i != *table_columns; i++) |