A Warp on a layer whose hidden circle keeps its shape past the budget
moves the layer's placed gradient from the layer's bounds to the warped
square's bounds, as the art and inside the art. Edited freeform points
on a path, on a group inside the art and on the art itself move from the
bounds before the warp to the bounds after it.
- The link watch and links.updateChanged look at a DCS file's plate files
of their own, so a changed plate file is read again.
- links.update and links.relink apply the file's clipping path to the
images in symbols, graph designs, patterns and masks too. When the new
file has no clipping path, a clip group holding the old file's clipping
path loses that path and stays as a plain group of the image, keeping
its id, name, visibility and transparency. The image keeps that path with its plates to tell it from a
clipping mask made in the document; a clipping path given another fill
rule in the document stays. An even-odd clipping path in the file is
kept as the same area under the nonzero rule.
- links.update and links.relink return the swatch warnings file.place
gives, including two files that add one ink in two colors.
- links.relink with copy fails for a DCS file with plate files of its own.
- file.place answers the image id of a clipped DCS placement as image,
and checks page and crop for a DCS file as it does for an EPS file.
- Print separations and Separations Preview take a spot plate's color
from the document's swatch of its ink, and a reduced image's plates
keep their coverage.
- Show DCS Transparency Interactions counts a transparent DCS image and
characters filled or stroked with a transparent gradient.
- %%PlateFile names keep their spaces, and header bytes that are not
UTF-8 are read as Latin-1.
- A plate program that draws more than one image, art besides its image,
or its image through a clipping path is an error naming the plate
instead of printing the wrong ink.
- Nested clipping paths around the composite clip the image together.
- A kept image with more plates than are read, or more TIFF directories
than its composite and plates, is the CMYK image of its composite
only, not a set of plates cut short.
- swatch.unused counts a spot or process swatch as used only while an
image the art shows has a spot plate of its name.
An inline graphic in overset characters, or one named on a run that holds
other characters, draws no symbol, so Find, selection-only Change and Print
no longer reach its symbol's type through it.
Characters of area type or type on a path that don't fit draw nothing, so
their character fill or stroke no longer counts as painting its pattern for
Find and selection-only Change, as Print already leaves them out.
- A fill or stroke at an opacity of 0 no longer counts as painting its
pattern, so Find, selection-only Change and Print leave that pattern's
type out.
- Text whose inline graphics draw a symbol shows that symbol's type: Find
selects it, and selection-only Change and the font list reach the type
through it, also through a pattern whose art holds such text.
- Refresh Font List lays out again the type in opacity masks and in the
art of symbols and patterns, and inline graphics, on the layers and in
that art, take the new size of their symbols' art.
docs/mcp.md said twice that `pages` naming every page of a .ai saved
without PDF compatibility opens it from its editing data, once with the
file named and once as "such a file". The paragraph also ended in the
middle of a sentence: "`clipboard.importPdf` takes every object of its
editing".
The sentence now appears once, with the file named, and the paragraph
ends with "its editing data."
Docs: docs/mcp.md.
Saving with transparentImages "omit" now reports its note in the notes on
the options rather than in the warnings, so the test compares every note
the export gives.
A mesh envelope's points carry no color, so object.mesh.addLine with
a color at a point the envelope already has changes nothing. It now
compares only the envelope's points and handles and records no undo
step. The command text and docs/mcp.md say so.
object.mesh.addLine at a point that is already a mesh point (a corner,
a point on an edge or inside) adds neither a row nor a column, yet it
recorded an undo step. The lines are now added to a copy of the object
first: when the grid stays the same, including a mesh envelope stored
without handles, the command returns the point's index and records
nothing. A new color at the point is still one undo step.
Cancel on a pattern that Make created for the edit now removes every
swatch of it, a color group's included, and turns every paint of it
left in the document into no paint: art outside the editing layer,
opacity mask art, type runs, symbol definitions, graph designs, other
patterns' tiles (a copy Save a Copy made included), graphic and
character styles, brush art, and the fill, stroke and appearance new
art takes. Delete Pattern clears its paints in the same places, and a
Pattern Options rename renames them there; both reached only the
layers before. Delete's `unpainted` counts the document paints it
cleared.
Cancel after a Pattern Options rename during the edit gives the
pattern its old name back with its swatches and paints, unless another
pattern, swatch or color group has taken that name; before, the
definition went back to the old name while its swatches and paints
kept the new one.
Undo and Redo restore new art's paints with the document, including
the appearance inherited from the selection with New Art Has Basic
Appearance off. A rename preview that is replaced or canceled starts
again from the paints the interaction began with, and a canceled
preview takes the selection's appearance again.
The symbol instances the picker reads now share one limit of 16,000,000
placed objects, charged through charge_symbol_art and counted as the
renderer counts them, so deeply nested or heavily repeated instances
stop there. An instance whose art would pass the limit is left out with
its own paints, as the canvas draws none of it. Pattern tiles carry the
count in and out, and their art is read one level deeper than the
object the pattern fills, so a chain of patterns shares the depth limit
with the art around it; a pattern cut short there is read again where
it is used less deep.
The pixels read inside clip groups are now tested against at most
4,000,000 clipping-path elements in all. The clipped reads of one image
share the work, a read outside clip groups keeps its own pixel budget,
and when the work left can't test a pixel of every clipped read, the
reads that fit are kept in order and the rest are left out.
ImageBlob::sample_pixels takes a pixel budget for each pick.
A drag with the right or middle button on a Layers row could move or
copy the row, and the same drag on a guide row, the selected-art
square, the eye or lock column or a target circle moved the guide or
the art, swept visibility or locks, or transferred the appearance.
Each of these drags now starts only with the primary button, as the
Artboards panel's row drag does, and the grab cursor follows the
primary button too. A right-click still opens the row's menu.
The new test drags each of the six sources with the secondary and the
middle button, checks that no drag payload is held and that nothing in
the document or its undo steps changes, then drags the same path with
the primary button to show the drop target takes it.
docs/ui-parity.md and docs/target-app-parity.md listed the distance and
angle readouts while drawing as missing. With Smart Guides > Measurement
Labels on, the Line Segment tool labels the segment being drawn with its
distance, angle and X and Y offsets, and the Pen, Curvature and Smart Pen
tools label their rubber band the same way (#2983). The Measurement
labels row is marked done, the two dimension rows drop the gap, and the
Drawing aids entry describes the labels.
locate_within measured every boundary edge of the mesh at full accuracy
for each lookup, including points well inside the mesh. It now skips an
edge whose control points all lie farther than the distance it is
looking for: a millionth of a point for the outline, or the tolerance
for a point outside.