mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 20:59:16 +00:00
LibWeb: Use CSSPixelFraction
to represent aspect ratios
This allows us to retain perfect precision for aspect ratios derived from either the intrinsic sizes of replaced elements, or the `aspect-ratio` CSS property.
This commit is contained in:
parent
4fb209d25f
commit
34c5043cbe
Notes:
sideshowbarker
2024-07-16 20:31:50 +09:00
Author: https://github.com/Zaggy1024
Commit: 34c5043cbe
Pull-request: https://github.com/SerenityOS/serenity/pull/20943
22 changed files with 57 additions and 55 deletions
|
@ -140,16 +140,16 @@ Optional<CSSPixels> SVGDecodedImageData::intrinsic_height() const
|
|||
return {};
|
||||
}
|
||||
|
||||
Optional<float> SVGDecodedImageData::intrinsic_aspect_ratio() const
|
||||
Optional<CSSPixelFraction> SVGDecodedImageData::intrinsic_aspect_ratio() const
|
||||
{
|
||||
// https://www.w3.org/TR/SVG2/coords.html#SizingSVGInCSS
|
||||
auto width = intrinsic_width();
|
||||
auto height = intrinsic_height();
|
||||
if (width.has_value() && height.has_value())
|
||||
return width->to_float() / height->to_float();
|
||||
return *width / *height;
|
||||
|
||||
if (auto const& viewbox = m_root_element->view_box(); viewbox.has_value())
|
||||
return viewbox->width / viewbox->height;
|
||||
return CSSPixels::nearest_value_for(viewbox->width) / CSSPixels::nearest_value_for(viewbox->height);
|
||||
|
||||
return {};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue