mirror of
https://github.com/penpot/penpot.git
synced 2026-09-12 21:59:43 -04:00
* 🐛 Fix nested board drop target ignoring ancestor clip bounds Frame hit-testing (get-frame-by-position, get-frames-by-position and top-nested-frame) only checked a candidate board's own rectangle, without accounting for an ancestor board with clip content enabled. A nested board wider/taller than its clipping ancestor could still be picked as the drop target in its invisible, clipped-away area, so a dragged shape would get reparented there and disappear from view. Add clipped-by-ancestor? to reject a point when it falls outside the bounds of any ancestor board that has clip content enabled, so the lookup now stops at the correct visible ancestor instead of descending into the hidden region. * 🐛 Fix Ctrl+click deep-select reaching into clipped board area The clip-aware quadtree query (query-index) filters candidate shapes by whether they overlap every clip-parent ancestor, but the whole filter was skipped whenever clip-children? was false. That flag is turned off while a modifier key (Ctrl/Cmd) is held for deep/penetrate selection, which was meant to let it reach past boolean/mask clip boundaries, but it also disabled enforcement for board "Clip content" ancestors, letting a modifier-held click select a shape sitting in a board's invisible, clipped-away region. overlaps-parent? now only relaxes the check for non-frame clip-parents (bool shapes / mask children) when clip-children? is false; board clip ancestors are always enforced regardless of the modifier key.