diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2017-05-19 15:49:49 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-05-23 11:35:52 +0200 |
commit | 6c1f45876e6981181f60b4a1c3932393359d63c1 (patch) | |
tree | cbad3c49b0cd2789eaebc29e7aef1cbdb72e8a1c /source/html/css-apply.c | |
parent | 598344369ae46f140e9f617e26227e48c6d97fb3 (diff) | |
download | mupdf-6c1f45876e6981181f60b4a1c3932393359d63c1.tar.xz |
Handle 'auto' property in css numbers. Support block box 'width' property.
For now, treat auto in margins as zero.
Diffstat (limited to 'source/html/css-apply.c')
-rw-r--r-- | source/html/css-apply.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/source/html/css-apply.c b/source/html/css-apply.c index 08ce586f..58b7772a 100644 --- a/source/html/css-apply.c +++ b/source/html/css-apply.c @@ -973,28 +973,28 @@ border_style_from_property(fz_css_match *match, const char *property) } float -fz_from_css_number(fz_css_number number, float em, float width) +fz_from_css_number(fz_css_number number, float em, float percent_value, float auto_value) { switch (number.unit) { default: case N_NUMBER: return number.value; case N_LENGTH: return number.value; case N_SCALE: return number.value * em; - case N_PERCENT: return number.value * 0.01 * width; - case N_AUTO: return width; + case N_PERCENT: return number.value * 0.01 * percent_value; + case N_AUTO: return auto_value; } } float -fz_from_css_number_scale(fz_css_number number, float scale, float em, float width) +fz_from_css_number_scale(fz_css_number number, float scale) { switch (number.unit) { default: case N_NUMBER: return number.value * scale; case N_LENGTH: return number.value; - case N_SCALE: return number.value * em; - case N_PERCENT: return number.value * 0.01 * width; - case N_AUTO: return width; + case N_SCALE: return number.value * scale; + case N_PERCENT: return number.value * 0.01 * scale; + case N_AUTO: return scale; } } @@ -1054,9 +1054,9 @@ hex_color: vr = value->args; vg = vr && vr->next ? vr->next->next : NULL; /* skip the ',' nodes */ vb = vg && vg->next ? vg->next->next : NULL; /* skip the ',' nodes */ - r = fz_from_css_number(number_from_value(vr, 0, N_NUMBER), 255, 255); - g = fz_from_css_number(number_from_value(vg, 0, N_NUMBER), 255, 255); - b = fz_from_css_number(number_from_value(vb, 0, N_NUMBER), 255, 255); + r = fz_from_css_number(number_from_value(vr, 0, N_NUMBER), 255, 255, 0); + g = fz_from_css_number(number_from_value(vg, 0, N_NUMBER), 255, 255, 0); + b = fz_from_css_number(number_from_value(vb, 0, N_NUMBER), 255, 255, 0); return make_color(r, g, b, 255); } |