VectorCraft reads the symbol definitions of a large canvas .ai or EPS,
and of a .ai whose page is in larger units, in the same units as its
layers. Opening such a file scaled the layers and graphic styles up to
full size but left the symbols' art as it was. Instances on the layers
drew at the right size, but each one's transform carried the factor N,
and a newly placed instance came in at 1/N of the size, where N is the
file's large canvas scale or its page's unit.
- Opening the file now scales each symbol's art, strokes and effects with
the layers. Instances on the layers, in symbol art, in pattern tiles
and in opacity masks keep their own scale and rotation and draw where
they did.
- A symbol library without layers from such a file gets the same scale
as its graphic styles.
- Opacity masks on the layers that do not move with their object are
scaled with the layers too, as are those in symbol art.
- Editing data that VectorCraft wrote (its %%Creator line) keeps its
symbols and those masks at their own size, as the .ai save writes
them, so files saved by earlier versions open as before.
A freeform gradient's image was sampled, encoded and written inline at
every fill, outside the reuse placed images have. Fields now go through
the same codes and placements: a fill whose encoded image (color setup,
image dictionary, filter, operator and samples) matches one already
kept draws from it, so its samples are written once in the setup as
VCim<i>. A field drawn once is still written where it is drawn.
A fill whose placement can't be drawn, or that arrives when the page is
already at the 256 MB limit, is no longer sampled first, and a field
image taken back with art that passed the limit is forgotten.
A gradient vector drawn on the art, a click that applies one, and the
dragged start and end handles snapped through snap_draw, which gathers
the bounds and anchors of the art only. Path segments, View › Snap to
Glyph's guides and the construction guides through the vector's start
did not pull them, and a click applied the gradient from the pointer
rather than from the snapped point. They now snap through DrawSnap, as
the Pen and Line Segment tools do:
- The press gathers the targets, for a vector drawn on the art and the
start and end handles only, and the drag keeps them. A click applies
the gradient from the snapped press.
- A dragged end or handle leaves its start as a Line Segment's end does:
it lands on the construction guides through the start, and with Shift
it keeps to 45° steps from the Constrain Angle and snaps along them.
- The pointer hovering where a press would draw a vector (anywhere with
art selected, over art with nothing selected), and not over the
annotator, shows the guides of the point the vector would start on.
A press that snaps onto a nearby target no longer starts the drag
early: the 3 px drag threshold counts from where the pointer was
pressed, not from the snapped start.
The palette listed the Layers panel's Delete Selection twice: as
Window › Layers › Delete Selection, which ran layer.delete and deleted a
layer holding art without asking, and as a bare Delete Selection, which
ran ui.layerDelete and asked first.
- The palette now lists one Window › Layers › Delete Selection result,
which runs ui.layerDelete, so a pick asks before deleting a layer or
sublayer that holds art. Scripts and the control channel still run
layer.delete at once.
- New Brush…, Brush Options…, Symbol Options…, Import SVG Filter… and
Convert to Text were also listed twice under the same name, once as
the engine command, which the palette ran with no params. Each is now
listed once, as the UI command that opens its dialog or file chooser
or acts on the edited paragraphs.
- A search for a wrapped engine command's id or menu path still finds
the one result.
Docs: docs/target-app-parity.md (Layers panel deletion).