diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2014-04-09 13:56:27 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2014-04-09 13:57:43 +0100 |
commit | c36078db73ba4a5e7ad5fa0019dfa3fffdead59d (patch) | |
tree | d7aaaad28dd29206da3fa65f2a898e06c9c05bd3 /render/table.c | |
parent | b7b3496a78fd08197899f588a4abc026c8636e74 (diff) | |
download | netsurf-c36078db73ba4a5e7ad5fa0019dfa3fffdead59d.tar.gz netsurf-c36078db73ba4a5e7ad5fa0019dfa3fffdead59d.tar.bz2 |
Fix collapsing borders with rowspan from previous row group.
Mantis #0002102
Diffstat (limited to 'render/table.c')
-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; |