summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--render/box_construct.c42
-rw-r--r--render/layout.c3
2 files changed, 27 insertions, 18 deletions
diff --git a/render/box_construct.c b/render/box_construct.c
index 466d9b5f4..82b60f97b 100644
--- a/render/box_construct.c
+++ b/render/box_construct.c
@@ -941,15 +941,18 @@ void box_set_table_border(struct box *box, int value, colour color)
if (box->type == BOX_TABLE) {
for (unsigned int i = 0; i != 4; i++) {
- box->style->border[i].color = color;
- box->style->border[i].width.width =
- CSS_BORDER_WIDTH_LENGTH;
- box->style->border[i].width.value.value =
- value;
- box->style->border[i].width.value.unit =
- CSS_UNIT_PX;
- box->style->border[i].style =
- CSS_BORDER_STYLE_OUTSET;
+ if (box->style->border[i].style ==
+ CSS_BORDER_STYLE_NOT_SET) {
+ box->style->border[i].color = color;
+ box->style->border[i].width.width =
+ CSS_BORDER_WIDTH_LENGTH;
+ box->style->border[i].width.value.value =
+ value;
+ box->style->border[i].width.value.unit =
+ CSS_UNIT_PX;
+ box->style->border[i].style =
+ CSS_BORDER_STYLE_OUTSET;
+ }
}
}
@@ -963,15 +966,18 @@ void box_set_table_border(struct box *box, int value, colour color)
break;
case BOX_TABLE_CELL:
for (unsigned int i = 0; i != 4; i++) {
- child->style->border[i].color = color;
- child->style->border[i].width.width =
- CSS_BORDER_WIDTH_LENGTH;
- child->style->border[i].width.value.value =
- 1;
- child->style->border[i].width.value.unit =
- CSS_UNIT_PX;
- child->style->border[i].style =
- CSS_BORDER_STYLE_INSET;
+ if (child->style->border[i].style ==
+ CSS_BORDER_STYLE_NOT_SET) {
+ child->style->border[i].color = color;
+ child->style->border[i].width.width =
+ CSS_BORDER_WIDTH_LENGTH;
+ child->style->border[i].width.value.value =
+ 1;
+ child->style->border[i].width.value.unit =
+ CSS_UNIT_PX;
+ child->style->border[i].style =
+ CSS_BORDER_STYLE_INSET;
+ }
}
break;
default:
diff --git a/render/layout.c b/render/layout.c
index f70da3a68..3e6c2a367 100644
--- a/render/layout.c
+++ b/render/layout.c
@@ -1488,6 +1488,9 @@ bool layout_table(struct box *table, int available_width,
* possible, so treat it as a minimum */
int row_height = (int) css_len2px(&row->style->
height.length, row->style);
+ /* we can't use this value currently as it is always
+ * the height of a line of text in the current style */
+ row_height = 0;
for (c = row->children; c; c = c->next) {
assert(c->style);
c->width = xs[c->start_column + c->columns] -