vectorcraft/crates
dotCooCoo 44685d8798 Align: Object › Align follows Align To, and the choice is kept across restarts
Object › Align ran object.align without to, so it aligned to the key
object while there was one and otherwise to the selection. With Align
to Artboard chosen it aligned two objects to the selection's bounds,
and it left a single selected object where it was, while the align
buttons of the Align panel, the Control bar and the Properties panel
move that object to the active artboard. The Align To choice was kept
in egui's temporary memory, so it went back to Align to Selection at
each launch, and ui.inspect did not report it.

The choice is now the UiState field align_to, which the desktop app
saves with its preferences and ui.inspect reports. A saved value other
than "artboard" reads as Selection, and the other preferences still
load. Object › Align now sends the to that the align buttons send: the
artboard when one object is selected, else the key object while there
is one, else the Align To choice. With anchor points selected it sends
its parameters as before, and the points align to their own bounds.
While one object is selected, the Align To row shows Artboard. Agents'
object.align calls without to keep the engine's default.

Docs: docs/control-protocol.md, docs/target-app-parity.md.
2026-10-12 15:17:06 +07:00
..
affinity Clippy 1.99: as_chunks in the Affinity raster tests 2026-10-09 23:15:36 +07:00
brush #1172: share an object's appearance with its undo history until it changes 2026-10-11 23:27:21 +07:00
cad fix(cad): a closed control-point DXF SPLINE is read as closed (#1299) 2026-10-12 15:16:43 +07:00
color Review: palette writing keeps the swatches PaletteFormat::holds names; ROADMAP (#1110) 2026-10-11 11:33:07 +07:00
doc deselect hidden and locked objects in linear time 2026-10-12 14:50:00 +07:00
effects #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
engine fix: Pathfinder results keep the source's name and SVG id (#1293) 2026-10-12 15:17:01 +07:00
eps Part of #868: PDFs saved with the reference app's editing data open from it, as .ai files do 2026-10-12 14:50:00 +07:00
format #1244: reserve at most 64 MB for a file's entry before its data is read 2026-10-12 11:03:01 +07:00
geom #1111: a blend's spine bends into a curve 2026-10-11 17:49:41 +07:00
mcp MCP: lost replies report uncertainty instead of replaying edits 2026-10-12 06:59:49 +07:00
metafile #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
pathops fix(pathfinder): Divide splits shapes with an open cutting line (#1307) 2026-10-12 15:16:57 +07:00
pdf Part of #868: PDFs saved with the reference app's editing data open from it, as .ai files do 2026-10-12 14:50:00 +07:00
plugins Review: a whole number past i64::MAX is past any maximum; ROADMAP (#1091) 2026-10-11 12:24:46 +07:00
render Part of #394: Appearance of Black › On Screen shows pure CMYK black as RGB black 2026-10-12 14:50:00 +07:00
svg #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
testkit Part of #868: PDFs saved with the reference app's editing data open from it, as .ai files do 2026-10-12 14:50:00 +07:00
text Type: Proportional Metrics bring their kerning — `apkn` with `palt`, `vkrn` and `vapk` with `vpal` (#966) 2026-10-12 07:25:55 +07:00
three-d M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
tools #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
trace Image Trace: an oversized image decodes within the allocation its 192 megapixel limit needs (512 MB on the web) 2026-10-12 08:23:19 +07:00
ui-egui Align: Object › Align follows Align To, and the choice is kept across restarts 2026-10-12 15:17:06 +07:00