mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
Implement the containing block chain traversal in compute_intersection (steps 2-3 of the spec algorithm). Walk from the target's paintable box up through the containing block chain, clipping the intersection rect against each ancestor that has a content clip (overflow != visible). This fixes the case where a target is inside an overflow:hidden or overflow:clip container and pushed below the visible area. Previously, the intersection ratio was incorrectly non-zero because we only intersected with the root bounds (viewport), not intermediate scroll containers. Also update the scroll container clipping tests to verify the intersection ratio (which is what compute_intersection affects) rather than isIntersecting (which per spec is based on targetRect vs rootBounds, not the clipped intersection rect).