summaryrefslogtreecommitdiff
path: root/source/html
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2015-04-28 13:05:51 +0200
committerTor Andersson <tor.andersson@artifex.com>2015-04-28 13:06:54 +0200
commitce903ab6437d9bc3d0062a5fe8245b68ec30ad40 (patch)
tree4d844edb1ee35c92afe0f2d10e12fd81e7d09375 /source/html
parent9051124e9465a0e2458dd048d8a9da994f09d420 (diff)
downloadmupdf-ce903ab6437d9bc3d0062a5fe8245b68ec30ad40.tar.xz
epub: Only apply border widths when the border is visible.
The border_style field was changed from an enum to an array of enums, but one place where it was used was not updated.
Diffstat (limited to 'source/html')
-rw-r--r--source/html/html-layout.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/source/html/html-layout.c b/source/html/html-layout.c
index 6d67f1a1..98ac3a68 100644
--- a/source/html/html-layout.c
+++ b/source/html/html-layout.c
@@ -609,31 +609,27 @@ static void layout_block(fz_context *ctx, fz_html *box, fz_html *top, float em,
float box_collapse_margin;
int prev_br;
+ fz_css_style *style = &box->style;
float *margin = box->margin;
float *border = box->border;
float *padding = box->padding;
- em = box->em = fz_from_css_number(box->style.font_size, em, em);
+ em = box->em = fz_from_css_number(style->font_size, em, em);
- margin[0] = fz_from_css_number(box->style.margin[0], em, top->w);
- margin[1] = fz_from_css_number(box->style.margin[1], em, top->w);
- margin[2] = fz_from_css_number(box->style.margin[2], em, top->w);
- margin[3] = fz_from_css_number(box->style.margin[3], em, top->w);
+ margin[0] = fz_from_css_number(style->margin[0], em, top->w);
+ margin[1] = fz_from_css_number(style->margin[1], em, top->w);
+ margin[2] = fz_from_css_number(style->margin[2], em, top->w);
+ margin[3] = fz_from_css_number(style->margin[3], em, top->w);
- padding[0] = fz_from_css_number(box->style.padding[0], em, top->w);
- padding[1] = fz_from_css_number(box->style.padding[1], em, top->w);
- padding[2] = fz_from_css_number(box->style.padding[2], em, top->w);
- padding[3] = fz_from_css_number(box->style.padding[3], em, top->w);
+ padding[0] = fz_from_css_number(style->padding[0], em, top->w);
+ padding[1] = fz_from_css_number(style->padding[1], em, top->w);
+ padding[2] = fz_from_css_number(style->padding[2], em, top->w);
+ padding[3] = fz_from_css_number(style->padding[3], em, top->w);
- if (box->style.border_style)
- {
- border[0] = fz_from_css_number(box->style.border_width[0], em, top->w);
- border[1] = fz_from_css_number(box->style.border_width[1], em, top->w);
- border[2] = fz_from_css_number(box->style.border_width[2], em, top->w);
- border[3] = fz_from_css_number(box->style.border_width[3], em, top->w);
- }
- else
- border[0] = border[1] = border[2] = border[3] = 0;
+ border[0] = style->border_style[0] ? fz_from_css_number(style->border_width[0], em, top->w) : 0;
+ border[1] = style->border_style[1] ? fz_from_css_number(style->border_width[1], em, top->w) : 0;
+ border[2] = style->border_style[2] ? fz_from_css_number(style->border_width[2], em, top->w) : 0;
+ border[3] = style->border_style[3] ? fz_from_css_number(style->border_width[3], em, top->w) : 0;
if (padding[T] == 0 && border[T] == 0)
box_collapse_margin = margin[T];
@@ -667,7 +663,7 @@ static void layout_block(fz_context *ctx, fz_html *box, fz_html *top, float em,
{
/* TODO: interaction with page breaks */
if (prev_br)
- box->h += fz_from_css_number_scale(box->style.line_height, em, em, em);
+ box->h += fz_from_css_number_scale(style->line_height, em, em, em);
prev_br = 1;
}
else if (child->type == BOX_FLOW)