diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/table.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/render/table.c b/render/table.c index 5eba544b5..1dd179d68 100644 --- a/render/table.c +++ b/render/table.c @@ -336,8 +336,9 @@ void table_used_left_border_for_cell(struct box *cell) if (cell->prev == NULL) { struct box *row; + struct box *rowg; - /* Spanned from a previous row */ + /* Spanned from a previous row in current row group */ for (row = cell->parent; row != NULL; row = row->prev) { for (prev = row->children; prev != NULL; prev = prev->next) { @@ -351,6 +352,25 @@ void table_used_left_border_for_cell(struct box *cell) break; } + for (rowg = cell->parent->parent; + rowg != NULL && prev == NULL; + rowg = rowg->prev) { + /* Spanned from a previous row in + * previous row group */ + for (row = rowg->last; row != NULL; + row = row->prev) { + for (prev = row->children; + prev != NULL; + prev = prev->next) { + if (prev->start_column + + prev->columns == + cell-> + start_column) + break; + } + } + } + assert(prev != NULL); } else { prev = cell->prev; |