From c36078db73ba4a5e7ad5fa0019dfa3fffdead59d Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Wed, 9 Apr 2014 13:56:27 +0100 Subject: Fix collapsing borders with rowspan from previous row group. Mantis #0002102 --- render/table.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'render') 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; -- cgit v1.2.3