Paste placed character and paragraph styles before the patterns, symbols
and brushes they use, and compared each one with the document's before a
pattern it painted with had its final name. A style that painted with a
pattern added as "Dots 2" kept painting with the document's own "Dots",
or was matched to a document style of its name that paints with that
"Dots". A symbol whose art paints with such a pattern, and a brush whose
art sets type in a style renamed on the way in, were matched the same way.
Paste, and the symbol, brush, pattern and Libraries imports that add art
through it, now place each style, symbol, pattern and brush after the
ones it uses, as Load Character Styles and Load Paragraph Styles already
did, and relink the styles they add at the end. Pasted back into its own
document, each definition stays the document's of its name.
File › Open already opened `.vcstyles` graphic style libraries in their
library panel and imported `.vcperspective` perspective grid presets, but
its dialog had no filter for either. It now lists "Graphic Style
Libraries" after "Swatch libraries" and "Perspective grid presets" after
"Print presets". "All readable files" still lists documents only.
Other Library… and Locate Library… in the swatch and graphic style
library panels list their library filter once; the swatch dialog listed
"Swatch libraries" twice.
The per-item Revolve loop passed a copy of each fill or stroke to the
geometry context, which finds the item by identity in the object's
appearance, so a plug-in effect before the Revolve was told it sat on
the object. Each copy now keeps its original item beside it.
A command that needs a number, such as `x` of `shape.rectangle`, `intensity`
of `edit.colors.saturate` or `index` of `object.envelope.setMeshPoint`,
answered "missing number `x`" both when the key was left out and when it was
given as a value that is not a number, such as "40". A value that is given but
is not a number is now refused with "`x` must be a number, not "40"", the
message the optional number checks already use, showing the value as given.
A key left out or given as null is still a missing number. Neither error
changes the document or records an undo step.
Docs: docs/mcp.md, docs/target-app-parity.md.
A PDF of the art's bounds never carries Preserve Editing data, and the
export adds its warning only when Preserve Editing was on. docs/mcp.md
and the document.exportPdf params text now say so.
Find Font and Replace Missing Fonts looked only at the type on the layers
and in symbols, and the font list behind the export warning, Package and
the Missing Fonts dialog skipped opacity masks and pattern swatches.
- text.fonts lists the type in opacity masks (on objects and layers,
disabled masks and masks inside other art included) and in pattern
swatches, a swatch that nothing paints with included. A pattern's type
counts once however many objects it paints. With selectionOnly, the
masks of the selected objects and the symbols and patterns they show.
- select.font also selects the objects whose mask holds the font and the
objects painted with a pattern whose art uses it (visible fills and
strokes wider than 0). A layer's mask and an unused swatch select
nothing.
- text.replaceFont changes that type in one undo step. Type in the mask
of a hidden or locked object, and the type of a pattern that only
hidden or locked selected objects paint with, keeps its font and is
counted in skipped.
- addon.cleanup.replaceFonts replaces missing fonts in masks and
patterns, hidden or locked type included.
- text.missingFonts, File > Package and the export warning read masks
and patterns too.
- document.info's fonts for the whole document (the Fonts and Font
Details categories and the text report) include the same type. With
selectionOnly the list stays the selected type's fonts.
While a mask or pattern is edited, its type is taken from the editing
layer only.
The Brushes rows name each type as the New Brush dialog does (Art Brush,
Scatter Brush) and say "missing from the Brushes panel" for a brush the
panel does not hold. The panel now shows these values through the
catalogs, so a localized interface no longer shows them in English.
document.info and the saved report keep them in English. Every catalog
gets a row for "missing from the Brushes panel"; the type names already
had rows.
View > Proof Setup > Working CMYK simulates the working CMYK space of
Color Settings in Proof Colors and Separations Preview, also in a
document assigned another CMYK profile. The active context keeps the
working context beside the assigned profiles, and the proof table cache
key includes the working settings, so a change of the working CMYK space
shows in the next proof.
color.removeProfile gave every open document a new revision for any
removed profile. It now redraws when the removed profile was an assigned
profile in use, which the working space replaces, or the CMYK profile
View → Proof Setup targets. Removing any other profile leaves the
revisions unchanged, which loading_or_removing_the_proof_profile_redraws
checks.
With automation read roots in force, document.json returned each entry of
svg_scripts unchanged, so a JavaScript file linked from outside the read
roots kept its full path in the reply. The reply copy now names such a
file by its file name alone. An entry given as a URL is kept, and the
stored document is not changed.
- object.expand.info reports no gradient or fill to expand for a
gradient that repeats in more runs across its box than are written,
matching object.expand, which leaves it a gradient. For a path that a
painting live effect draws, it measures each piece the effect returns.
- CSS writes a repeating gradient's stop positions, and a repeating
radial gradient's radius, with enough decimals that their rounding
adds up to at most a hundredth of a period across the box (at least
four for positions and three for the radius).
- docs/mcp.md says that sharp steps and swatch-linked stops are the last
to be left out rather than always kept, and that the CSS conic limit
counts stops before midpoints and Perceptual curves add more.
A stroke at an opacity of 0 draws nothing, so its brush is no longer
listed in the Brushes category, brushNames or brushes. Pattern Objects,
Gradient Objects and Spot Color Objects likewise leave out fills and
strokes at an opacity of 0, and Objects no longer counts objects whose
only such paint is at opacity 0.
- The graphics of one 3D effect share one limit on drawn path elements
across every member and opacity group, so a group effect with many
members no longer multiplies the limit.
- Copy and paste follow the symbols that mapped graphics name, in object
and graphic style appearances: a document without the symbol gets it,
and one whose symbol of the same name is other art gets the copied
symbol under a free name, which the graphic then names.
- A face's inverse map refuses the points its page map refuses, so a
handle drag cannot save an offset whose handle is not shown.
- A press on a graphic's handle with Space held, or with the Hand, Zoom
or Rotate View tool, pans, zooms or turns the view.
- A handle drag ends, keeping its preview, when the selection or the
document changes while the pointer is down.