mirror of
https://github.com/penpot/penpot.git
synced 2026-09-21 11:26:15 +00:00
calc-overlay-position measured the destination overlay frame with its full object bounds (get-object-bounds) while measuring the relative-to frame with its selrect. Object bounds include padding for shadows, blur, outer strokes and overflowing children, so centered/right/bottom overlays were shifted by half that extra padding when the overlay frame had such effects (the overlay appeared offset, e.g. a bit to the left). Use the destination frame selrect (the visible frame box) instead, which matches the sibling helper calc-overlay-pos-initial and the viewer, which reserves the bounds size and re-aligns the selrect separately. The now unused geom.shapes.bounds require is removed. Adds a regression test asserting calc-overlay-position returns the same position with and without a bounds-inflating drop shadow on the destination frame. Fixes #9048 Signed-off-by: Filip Sajdak <filip.sajdak@siili.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Andrey Antukh <niwi@niwi.nz>