mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Implements box related discrete animatable properties
This commit is contained in:
parent
f46678cea8
commit
8a5c7a50d1
2 changed files with 23 additions and 22 deletions
|
@ -2171,12 +2171,14 @@ fn static_assert() {
|
|||
|
||||
<%call expr="impl_coord_copy('vertical_align', 'mVerticalAlign')"></%call>
|
||||
|
||||
% for kind in ["before", "after"]:
|
||||
// Temp fix for Bugzilla bug 24000.
|
||||
// Map 'auto' and 'avoid' to false, and 'always', 'left', and 'right' to true.
|
||||
// "A conforming user agent may interpret the values 'left' and 'right'
|
||||
// as 'always'." - CSS2.1, section 13.3.1
|
||||
pub fn set_page_break_before(&mut self, v: longhands::page_break_before::computed_value::T) {
|
||||
use computed_values::page_break_before::T;
|
||||
pub fn set_page_break_${kind}(&mut self, v: longhands::page_break_${kind}::computed_value::T) {
|
||||
use computed_values::page_break_${kind}::T;
|
||||
|
||||
let result = match v {
|
||||
T::auto => false,
|
||||
T::always => true,
|
||||
|
@ -2184,26 +2186,22 @@ fn static_assert() {
|
|||
T::left => true,
|
||||
T::right => true
|
||||
};
|
||||
self.gecko.mBreakBefore = result;
|
||||
self.gecko.mBreak${kind.title()} = result;
|
||||
}
|
||||
|
||||
${impl_simple_copy('page_break_before', 'mBreakBefore')}
|
||||
${impl_simple_copy('page_break_' + kind, 'mBreak' + kind.title())}
|
||||
|
||||
// Temp fix for Bugzilla bug 24000.
|
||||
// See set_page_break_before for detail.
|
||||
pub fn set_page_break_after(&mut self, v: longhands::page_break_after::computed_value::T) {
|
||||
use computed_values::page_break_after::T;
|
||||
let result = match v {
|
||||
T::auto => false,
|
||||
T::always => true,
|
||||
T::avoid => false,
|
||||
T::left => true,
|
||||
T::right => true
|
||||
};
|
||||
self.gecko.mBreakAfter = result;
|
||||
}
|
||||
// See set_page_break_before/after for detail.
|
||||
pub fn clone_page_break_${kind}(&self) -> longhands::page_break_${kind}::computed_value::T {
|
||||
use computed_values::page_break_${kind}::T;
|
||||
|
||||
${impl_simple_copy('page_break_after', 'mBreakAfter')}
|
||||
match self.gecko.mBreak${kind.title()} {
|
||||
true => T::always,
|
||||
false => T::auto,
|
||||
}
|
||||
}
|
||||
% endfor
|
||||
|
||||
pub fn set_scroll_snap_points_x(&mut self, v: longhands::scroll_snap_points_x::computed_value::T) {
|
||||
match v.0 {
|
||||
|
|
|
@ -201,7 +201,8 @@ ${helpers.single_keyword("position", "static absolute relative fixed",
|
|||
// https://drafts.csswg.org/css-logical-props/#float-clear
|
||||
extra_specified="inline-start inline-end"
|
||||
needs_conversion="True"
|
||||
animation_value_type="none"
|
||||
gecko_inexhaustive="True"
|
||||
animation_value_type="discrete"
|
||||
gecko_enum_prefix="StyleClear"
|
||||
gecko_ffi_name="mBreakType"
|
||||
spec="https://www.w3.org/TR/CSS2/visuren.html#flow-control">
|
||||
|
@ -2034,12 +2035,12 @@ ${helpers.single_keyword("page-break-after",
|
|||
"auto always avoid left right",
|
||||
products="gecko",
|
||||
spec="https://drafts.csswg.org/css2/page.html#propdef-page-break-after",
|
||||
animation_value_type="none")}
|
||||
animation_value_type="discrete")}
|
||||
${helpers.single_keyword("page-break-before",
|
||||
"auto always avoid left right",
|
||||
products="gecko",
|
||||
spec="https://drafts.csswg.org/css2/page.html#propdef-page-break-before",
|
||||
animation_value_type="none")}
|
||||
animation_value_type="discrete")}
|
||||
${helpers.single_keyword("page-break-inside",
|
||||
"auto avoid",
|
||||
products="gecko",
|
||||
|
@ -2087,7 +2088,8 @@ ${helpers.single_keyword("transform-box",
|
|||
gecko_enum_prefix="StyleGeometryBox",
|
||||
products="gecko",
|
||||
spec="https://drafts.csswg.org/css-transforms/#transform-box",
|
||||
animation_value_type="none")}
|
||||
gecko_inexhaustive="True",
|
||||
animation_value_type="discrete")}
|
||||
|
||||
// `auto` keyword is not supported in gecko yet.
|
||||
${helpers.single_keyword("transform-style",
|
||||
|
@ -2357,7 +2359,8 @@ ${helpers.single_keyword("-moz-orient",
|
|||
gecko_ffi_name="mOrient",
|
||||
gecko_enum_prefix="StyleOrient",
|
||||
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-orient)",
|
||||
animation_value_type="none")}
|
||||
gecko_inexhaustive="True",
|
||||
animation_value_type="discrete")}
|
||||
|
||||
<%helpers:longhand name="will-change" products="gecko" animation_value_type="none"
|
||||
spec="https://drafts.csswg.org/css-will-change/#will-change">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue