mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-26 02:37:01 -06:00
Align: Align to Key Object makes the topmost selected object the key
With two or more objects selected and no key object, a click on Align to Key Object in the Align panel stored Key as the Align To choice and set no key. The align buttons of the Align panel, the Control bar and the Properties panel then ran object.align with to: "key", which fails with "no key object". Distribute Spacing sent the panel's spacing value and kept the leftmost or top object in place. The stored Key stayed until Align to Selection, Align to Artboard or Cancel Key Object was chosen. The button now runs select.key on the topmost selected object, the last in paint order, whatever order the objects were selected in, and the canvas draws that object with the key-object outline. The align buttons in all three places and Distribute Spacing then use that key, and Cancel Key Object clears it. A key that is already set stays the key. With fewer than two objects selected the button is disabled, as the Distribute buttons are. The button stores no choice, so once the key is cleared by Cancel Key Object, by a click on the key object or by another selection, Align To shows the stored Selection or Artboard choice again. Cancel Key Object no longer sets that choice to Selection. Docs: docs/target-app-parity.md.
This commit is contained in:
@@ -397,6 +397,7 @@ Moved from the ROADMAP's "Shipped so far" on 2026-10-10. Update it when a featur
|
||||
- **Shaper:** uneven squares and rectangles become live rectangles even when drawing begins mid-edge. Recognition uses uniformly spaced samples and closed-loop corners, fits rectangle edges/angles rather than requiring a nearly perfect bounding-box fill, and includes the pointer-release position. Rectangles/squares and ellipses snap to 45° steps, hexagons to 90°, and triangles point up or down; lines keep their free angle even with Shift. Shaper Groups retain the live originals, merge regions with the gesture-origin fill, punch fills independently from strokes, remove boundaries on exiting scribbles and trim protruding stroke pieces. Source moves/resizes re-evaluate the result in the same undo step; double-click enters construction editing. Native save/reopen, face recoloring, Release and Expand are covered. The construction-mode widget and finer gesture heuristics remain.
|
||||
- **Selection:** Selection, Direct/Group Selection, Magic Wand, Lasso. A Shift-drag marquee toggles what it reaches: objects with the Selection tool, anchors with Direct and Group Selection (#483); the Lasso adds with Shift and subtracts with Alt. Dragging a path segment with Direct Selection bends it when it's curved (its anchors stay) and moves its two anchors when it's straight, one undo step; the fill, Shift or Alt still pick the whole path (Alt-drag copies it).
|
||||
A key object needs another selected object outside it. A Shift-click or any other change that leaves one object selected clears the key, and `select.key` sets none on one object or on a group selected with only its own members. With one object selected, the Align panel, the Control bar and the Properties panel align it to the artboard whatever Align To is set to.
|
||||
With two or more objects selected and no key object, Align to Key Object makes the topmost of them the key, whatever order they were selected in, and the Align panel, the Control bar and the Properties panel align to it. Align To keeps its Selection or Artboard choice and shows it again once the key is cleared.
|
||||
Agent selection commands validate every object id before changing the selection and report the resulting count and ids (#784).
|
||||
Align and Distribute Spacing keep a compound path or selected group that contains the key object in place, as they keep the key object itself.
|
||||
Clear deletes individual selected compound-path members without deleting their siblings, and explicit object ids work without a selection; Cut still removes the same objects it copies (#786).
|
||||
|
||||
Reference in New Issue
Block a user