mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
Refactor Position
A specified position is now a struct made of two values of different types, the first one being PositionComponent<X>, and the second one PositionComponent<Y>. A position component is represented by the new enum PositionComponent<Side>, with the three values Center, Length(LengthOrPercentage), and Side(Side, Option<LengthOrPercentage>). Side keywords are represented by the X and Y enums, which don't include a value for the center keyword anymore. They are accompanied by the Side trait, which allows us to determine whether a side keyword is "left" or "top". This refactor simplified the parsing and serialisation code and exposed bugs in it, where it would reject valid <position> values followed by arbitrary tokens, and where it would fail to prefer "left" to "right" when serialising positions in basic shapes.
This commit is contained in:
parent
0040160b38
commit
70ec61cf01
22 changed files with 484 additions and 887 deletions
|
@ -2143,11 +2143,11 @@ ${helpers.predefined_type("perspective",
|
|||
animation_value_type="ComputedValue")}
|
||||
|
||||
${helpers.predefined_type("perspective-origin",
|
||||
"position::OriginPosition",
|
||||
"computed::position::OriginPosition::center()",
|
||||
"position::Position",
|
||||
"computed::position::Position::center()",
|
||||
boxed="True",
|
||||
extra_prefixes="moz webkit",
|
||||
spec="https://drafts.csswg.org/css-transforms/#perspective-origin-property",
|
||||
spec="https://drafts.csswg.org/css-transforms-2/#perspective-origin-property",
|
||||
animation_value_type="ComputedValue")}
|
||||
|
||||
${helpers.single_keyword("backface-visibility",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue