1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:57:35 +00:00

LibWeb: Ensure transform of SVG <use> updates with x and y attributes

Rather than modify the transform of the parent (which could change
independently), this adds a new override element_transform() where
element specific tranfroms can be applied. This will always stay in
sync with the attributes.

A ref test comparing a .svg and .html version of the same file is
added as due to differences in attribute parsing order, the .svg version
was previously drawn incorrectly.

Fixes #20859
This commit is contained in:
MacDue 2023-08-31 08:58:41 +01:00 committed by Andrew Kaster
parent 90af21aef4
commit 720c27efbd
7 changed files with 38 additions and 6 deletions

View file

@ -53,6 +53,11 @@ protected:
virtual void initialize(JS::Realm&) override;
virtual Gfx::AffineTransform element_transform() const
{
return m_transform;
}
Optional<Gfx::PaintStyle const&> svg_paint_computed_value_to_gfx_paint_style(SVGPaintContext const& paint_context, Optional<CSS::SVGPaint> const& paint_value) const;
Gfx::AffineTransform m_transform = {};