Implement -webkit-radial-gradient aliases.

In display_list_builder.rs handle cover and contain size keywords.
This commit is contained in:
Pyfisch 2017-04-29 20:00:13 +02:00
parent caa66a880a
commit e62ad7e680

View file

@ -710,7 +710,7 @@ fn convert_circle_size_keyword(keyword: SizeKeyword,
center: &Point2D<Au>) -> Size2D<Au> { center: &Point2D<Au>) -> Size2D<Au> {
use style::values::computed::image::SizeKeyword::*; use style::values::computed::image::SizeKeyword::*;
let radius = match keyword { let radius = match keyword {
ClosestSide => { ClosestSide | Contain => {
let dist = get_distance_to_sides(size, center, ::std::cmp::min); let dist = get_distance_to_sides(size, center, ::std::cmp::min);
::std::cmp::min(dist.width, dist.height) ::std::cmp::min(dist.width, dist.height)
} }
@ -719,12 +719,7 @@ fn convert_circle_size_keyword(keyword: SizeKeyword,
::std::cmp::max(dist.width, dist.height) ::std::cmp::max(dist.width, dist.height)
} }
ClosestCorner => get_distance_to_corner(size, center, ::std::cmp::min), ClosestCorner => get_distance_to_corner(size, center, ::std::cmp::min),
FarthestCorner => get_distance_to_corner(size, center, ::std::cmp::max), FarthestCorner | Cover => get_distance_to_corner(size, center, ::std::cmp::max),
_ => {
// TODO(#16542)
println!("TODO: implement size keyword {:?} for circles", keyword);
Au::new(0)
}
}; };
Size2D::new(radius, radius) Size2D::new(radius, radius)
} }
@ -736,15 +731,10 @@ fn convert_ellipse_size_keyword(keyword: SizeKeyword,
center: &Point2D<Au>) -> Size2D<Au> { center: &Point2D<Au>) -> Size2D<Au> {
use style::values::computed::image::SizeKeyword::*; use style::values::computed::image::SizeKeyword::*;
match keyword { match keyword {
ClosestSide => get_distance_to_sides(size, center, ::std::cmp::min), ClosestSide | Contain => get_distance_to_sides(size, center, ::std::cmp::min),
FarthestSide => get_distance_to_sides(size, center, ::std::cmp::max), FarthestSide => get_distance_to_sides(size, center, ::std::cmp::max),
ClosestCorner => get_ellipse_radius(size, center, ::std::cmp::min), ClosestCorner => get_ellipse_radius(size, center, ::std::cmp::min),
FarthestCorner => get_ellipse_radius(size, center, ::std::cmp::max), FarthestCorner | Cover => get_ellipse_radius(size, center, ::std::cmp::max),
_ => {
// TODO(#16542)
println!("TODO: implement size keyword {:?} for ellipses", keyword);
Size2D::new(Au::new(0), Au::new(0))
}
} }
} }