style: Implement transform: perspective(none)

Differential Revision: https://phabricator.services.mozilla.com/D123350
This commit is contained in:
Emilio Cobos Álvarez 2023-05-22 15:05:17 +02:00 committed by Oriol Brufau
parent ce45f68d9c
commit fa840e1666
4 changed files with 72 additions and 19 deletions

View file

@ -238,8 +238,14 @@ impl Transform {
Ok(generic::TransformOperation::SkewY(theta))
},
"perspective" => {
let d = specified::Length::parse_non_negative(context, input)?;
Ok(generic::TransformOperation::Perspective(d))
let p = match input.try_parse(|input| specified::Length::parse_non_negative(context, input)) {
Ok(p) => generic::PerspectiveFunction::Length(p),
Err(..) => {
input.expect_ident_matching("none")?;
generic::PerspectiveFunction::None
}
};
Ok(generic::TransformOperation::Perspective(p))
},
_ => Err(()),
};