mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:08:11 +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:
parent
90af21aef4
commit
720c27efbd
7 changed files with 38 additions and 6 deletions
|
@ -111,7 +111,7 @@ Gfx::AffineTransform SVGGraphicsElement::get_transform() const
|
|||
{
|
||||
Gfx::AffineTransform transform = m_transform;
|
||||
for (auto* svg_ancestor = shadow_including_first_ancestor_of_type<SVGGraphicsElement>(); svg_ancestor; svg_ancestor = svg_ancestor->shadow_including_first_ancestor_of_type<SVGGraphicsElement>()) {
|
||||
transform = Gfx::AffineTransform { svg_ancestor->m_transform }.multiply(transform);
|
||||
transform = Gfx::AffineTransform { svg_ancestor->element_transform() }.multiply(transform);
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue