diff options
Diffstat (limited to 'src/select/properties/writing_mode.c')
-rw-r--r-- | src/select/properties/writing_mode.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/select/properties/writing_mode.c b/src/select/properties/writing_mode.c index 99ebd9e..05c0b26 100644 --- a/src/select/properties/writing_mode.c +++ b/src/select/properties/writing_mode.c @@ -55,16 +55,25 @@ css_error css__initial_writing_mode(css_select_state *state) CSS_WRITING_MODE_HORIZONTAL_TB); } +css_error css__copy_writing_mode( + const css_computed_style *from, + css_computed_style *to) +{ + if (from == to) { + return CSS_OK; + } + + return set_writing_mode(to, get_writing_mode(from)); +} + css_error css__compose_writing_mode(const css_computed_style *parent, const css_computed_style *child, css_computed_style *result) { - uint8_t writing_mode = get_writing_mode(child); - - if (writing_mode == CSS_WRITING_MODE_INHERIT) { - writing_mode = get_writing_mode(parent); - } + uint8_t type = get_writing_mode(child); - return set_writing_mode(result, writing_mode); + return css__copy_writing_mode( + type == CSS_WRITING_MODE_INHERIT ? parent : child, + result); } |