vectorcraft/docs
dotCooCoo dc6e8a4253 Object: Align, Move, Arrange and other commands that change nothing record no undo step
These Object commands edited the document even when nothing changed, so
the call recorded an undo step, emptied Redo and marked the document
modified:

- object.align, object.distributeSpacing and object.distribute (three
  or more objects) when no object moves. With one object selected,
  Object › Align aligns it to its own bounds, so it recorded a step
  every time. Calls on objects that were already aligned or evenly
  spaced also recorded a step, including objects that an earlier Align
  or Distribute left a rounding error away from the position the next
  call computes.
- Move, Rotate, Scale, Shear, Transform and Nudge by an identity
  transform without a copy, Transform Again after one, Set Bounds with
  the current position and size, and a Selection tool drag that ends
  where it started.
- Nudge by 0 with anchors direct-selected or with only ruler guides
  selected, and Transform with nothing selected or with ids that name
  no object, with or without a copy.
- Bring to Front and Bring Forward on objects already in front, Send to
  Back and Send Backward on objects already at the back, and Send to
  Current Layer on objects already on top of the current layer.
- Ungroup, Release Compound Path and Release Clipping Mask with none of
  their objects selected, and Expand Shape with no live shape selected.
- Lock with every selected object already locked, Hide with every one
  already hidden, Unlock All with nothing locked and Show All with
  nothing hidden.
- object.setProps with the values the objects already have, or with no
  object.
- object.setLiveShape with the values the shape already has: a
  polygon's sides, angle, radius or equal sides, or a side length that
  gives exactly its current radius; an ellipse's pie, including Invert
  Pie on a whole ellipse; and a corner radius or kind that the corners
  already have.

These commands now return without editing the document, and Align and
Distribute count a move of 1e-9 pt or less on both axes as none. Such a
call records no undo step, keeps the step to redo and leaves the
document unmodified. In these cases Ungroup no longer resets the
selection, and Release Compound Path, Unlock All and Show All no longer
empty it. A Transform with a copy of no object keeps the selection.
Lock and Hide still deselect the objects. A Nudge by 0 no longer
expands a live shape whose anchors are direct-selected. The replies
have the same form as before. An identity transform still sets what
Transform Again repeats. The journal still records each call, so the
Actions panel records it as before.

When every value given to Set Bounds is the current one, it now applies
the identity transform instead of the transform computed from those
values, which can differ from the identity by a rounding error on a
rotated object or with Use Preview Bounds.

When a drag comes back to its start, the identity preview no longer
edits the document. Session::preview now advances the revision when it
undoes the previous preview, so views redraw that drag.

The undo and redo row of docs/mcp.md now notes that many calls that
change nothing record no undo step, so undo after one undoes the step
before it.
2026-10-11 07:02:28 +07:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:13 -04:00
images README: refresh the screenshots and renders, add a Perspective Grid shot 2026-10-08 02:39:29 +07:00
affinity-validation.md AF.4 docs: leave out shop listings and sandbox notes 2026-10-09 22:20:39 +07:00
architecture.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#994) 2026-10-10 14:11:14 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#411) 2026-10-07 21:22:04 -04:00
control-protocol.md Review: guides on hidden or locked layers, and through layer commands 2026-10-11 06:03:48 +07:00
development.md #964: start again when the first frame never reaches the screen 2026-10-10 23:38:58 +07:00
effects-parity.md Part of gap 2: Effect › Brush Strokes (Accented Edges, Angled Strokes, Crosshatch, Dark Strokes, Ink Outlines, Spatter, Sprayed Strokes, Sumi-e) 2026-10-11 01:19:26 +07:00
file-format-parity.md #1027: PostScript-form .ai files open through their layers 2026-10-11 06:04:48 +07:00
gaps.md #1034: scaled type shows and takes its scaled sizes 2026-10-11 07:00:34 +07:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#994) 2026-10-10 14:11:14 -04:00
localization-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#994) 2026-10-10 14:11:14 -04:00
mcp.md Object: Align, Move, Arrange and other commands that change nothing record no undo step 2026-10-11 07:02:28 +07:00
plugins.md Fix #121: sandboxed WebAssembly plug-ins: object filters and live effects 2026-10-06 00:19:41 +07:00
releasing.md Release prep: 0.9.0 and a Linux riscv64 release build (#1071) 2026-10-10 19:47:38 -04:00
revolve.md M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
roadmap.md #1034: scaled type shows and takes its scaled sizes 2026-10-11 07:00:34 +07:00
shaper.md M2.9: add editable Shaper groups and shape orientation steps 2026-10-08 22:52:23 +01:00
target-app-parity.md Type: Proportional Metrics — full-width glyphs on the font's proportional widths, `palt` (#966) 2026-10-11 07:00:35 +07:00
type-parity.md #1034: scaled type shows and takes its scaled sizes 2026-10-11 07:00:34 +07:00
ui-parity.md Docs: ruler guides on layers in the parity docs 2026-10-11 06:03:47 +07:00
windows7.md M14: Windows 7 build: patch windows-link for that build only, manual CI 2026-10-08 05:37:06 +07:00