summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2014-04-09 13:56:27 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2014-04-09 13:57:43 +0100
commitc36078db73ba4a5e7ad5fa0019dfa3fffdead59d (patch)
treed7aaaad28dd29206da3fa65f2a898e06c9c05bd3
parentb7b3496a78fd08197899f588a4abc026c8636e74 (diff)
downloadnetsurf-c36078db73ba4a5e7ad5fa0019dfa3fffdead59d.tar.gz
netsurf-c36078db73ba4a5e7ad5fa0019dfa3fffdead59d.tar.bz2
Fix collapsing borders with rowspan from previous row group.
Mantis #0002102
-rw-r--r--render/table.c22
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;