Save As to an EPS file showed Preview Format, Overprints and Flattener
Preset as text fields holding their ids (tiffColor, preserve, medium),
the PostScript level as a number field, and labeled every EPS option
except Use Artboards from its name ("Cmyk Post Script", "Thumbnails").
The dialog now shows the options Export's EPS Options shows. Preview,
Overprints, Flattener preset (the built-in presets, then saved ones) and
PostScript are menus of readable names. Transparent and Opaque apply to
the color TIFF preview only. Embed Fonts shows checked and disabled. The
PostScript level comes last. A pick writes the same values as before
(previewFormat "tiffColor", a built-in preset's id, a saved preset's
name, the level as a number). A value that the save would reject shows
as it is.
Every option the dialog shows has a written label. "Preview:" has a row
in every catalog, and the de, it, ja, ko, uk, vi and zh-hant catalogs
gain the menu names, which Export's EPS Options also showed in English.
Export As's Range field shows the "1-3, 5" example when emptied, as
Save As's does.
While an app runs, its Data Recovery area's .lock file, or the whole area
folder, can be removed by the user, a cleaner or another program. The app
kept writing copies into an area that no lock held, and another app could
lock that area and offer the copies as a crash's copies.
Each recovery save and heartbeat now checks that the file at the area's
.lock path is still the file the app locked. When the lock file or the
folder is gone, or another file is in its place, the app makes the area
again if it is gone, locks it again, and writes again the copies that went
with the folder. A lock file that can't be read for another reason still
counts as held. When another app holds the area by then, the app takes a
new area and writes every copy there. The app does not offer or discard
its own copies in the old area as a crash's copies. It removes each one
when its document has a copy in the new area, or is saved, reverted or
closed, and removes all of them when it quits with nothing unsaved. The
app that holds the old area also removes them when it quits with nothing
unsaved.
A copy that was being written when the Data Recovery folder preference
changed is now removed from the folder it was written to. Before, the
document took that copy as its current one, and the copy stayed in the old
folder after the document was saved or closed.
Outside Windows, a library path that starts with a drive or a backslash counts as outside the read roots, since the file access check would read it as a name in the working folder.
Each hidden id or path is replaced once, chosen from the reply as given,
so a hidden path inside another library's shown id is not replaced
again, and a readable id written with %XX escapes keeps the hidden path
it begins with. A path quoted with {:?} is matched with its quotes and
control characters escaped. A path outside the read roots that the
request sent is shown by its file name in a reply that succeeded as in
one that failed, and a path param counts with a relative path too. A
relative path is not replaced where it ends a longer path. Without a
read root, a file: URL that names another host stays in ui.inspect's
recorded steps.
Paragraph justification can move point text past the canvas limit even when character copying is disabled. Check those targets before keeping the edit or remembered sample, and cover the explicit-target case with a regression.
Type › Dynamic Text Presets › Circle, Arch and Bow
(`type.dynamicTextPreset {preset, position?, flip?, ids?}`) put the
selected point type and type on a path on a new path of that shape and
turn Dynamic Text on, so the text is sized to fill it.
- Circle is a circle as wide as the text, the text running clockwise
from its bottom; Arch and Bow are a 120° arc whose chord is as wide as
the text, bulging up or down. The shape is upright on the page when
the object is rotated or scaled.
- `position` above, center or below sets Align to Path to Descender,
Center or Ascender; `flip` turns the text to the other side of its
path. Effect and Spacing stay.
- Area type is left as it is, threaded type on a path is refused, and a
preset that changes nothing records no undo step.
Docs: docs/mcp.md, docs/target-app-parity.md.
Part of #4134.
Window > Brush Libraries > Bristle Brushes holds ten original bristle
brushes generated in code, one for each tip shape: Fine Liner, Pointed
Flat, Stubby Round, Dry Scrub, Soft Dome, Filbert, Angled Round, Angled
Flat, Fan Blender and Grass Fan. Their names and values are VectorCraft's
own, and every value lies inside the range the bristle brush keeps.
A test checks the ranges, that every tip shape is covered, that no name
matches a default brush or another library's brush, that adding the
library is one undo step and a second add adds nothing, and that a saved
library reopens with the same brushes. The library and brush names have
rows in every catalog. docs/mcp.md lists the library.
A literal makes an extensible object whose properties are writable and
configurable, and an array whose length is writable. toSource wrote a
property defined with writable or configurable false, a sealed, frozen or
non-extensible object or array, and an array with a read-only length as an
ordinary literal, so evaluating the text gave an open value.
toSource now throws a TypeError for each of these, at any depth, as it
already does for getters, hidden properties and other prototypes.
Properties defined with every flag on are written as before.
Clicks, the hover pointer and marquees with the selection tools already
leave out the area that raster effects paint beyond an object. New tests
in crates/engine/src/tests/select_effects.rs hold that in place for drop
shadows, Outer Glow and Gaussian Blur on paths, groups, point type,
symbol art and images, for Shift-click, Direct Selection, the hover
pointer, a drag from a selected object's shadow and a marquee. hit_leaf
gets a doc comment, and docs/target-app-parity.md gets a line citing
https://helpx.adobe.com/illustrator/using/selecting-objects.html.
Window › Graphic Style Libraries › Textures, after Hand-Drawn, holds eight
styles that paint their fills and strokes with the texture effects: Fine
Grain (Grain), Canvas Weave and Burlap Sack (Texturizer), Cracked Glaze
(Craquelure), Mosaic Floor (Mosaic Tiles), Quilted Squares (Patchwork),
Leaded Glass (Stained Glass) and Damp Paper (Water Paper). The styles,
their names and their settings are VectorCraft's own.
Each catalog has rows for the library and style names. Docs: docs/mcp.md,
docs/gaps.md, docs/target-app-parity.md.
The test that installs a plug-in during the menu walk failed when another
test thread had already stored the snapshot of the same revision: the
stored snapshot was returned and the hook never ran. In tests, a set walk
hook now bypasses the stored snapshot, and the test stores that snapshot
itself first.