mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
When a text node changes inside an absolutely positioned element within an SVG <foreignObject>, and the abspos element's containing block is outside the SVG subtree, the layout invalidation was incorrectly stopping at the SVG root boundary. This triggered partial SVG relayout, which cannot re-layout the abspos element since it's laid out by its containing block's formatting context (outside the SVG). The previous check only tested whether `this` (the node triggering invalidation, e.g. a text node) was absolutely positioned, missing the case where an abspos *ancestor* in the path has its containing block outside the SVG. Fix this by walking from `this` up to the SVG root and checking every abspos node in the path. If any has a containing block outside the SVG subtree, skip the SVG boundary so layout propagation continues upward and a full layout runs.
3 lines
37 B
Plaintext
3 lines
37 B
Plaintext
width-grew=true
|
|
position-stable=true
|