The Assign rows of the Separations panel's Color Settings section (where
Edit > Assign Profile... goes) offer the three choices of the help's
"Assign or remove a color profile": Don't Color Manage This Document, the
working space of the document's color mode with its name, and Profile with
the other profiles of that kind.
The rows act on the profile of the document's color mode, so an RGB
document's RGB profile can be assigned here; before, the row always set
the CMYK profile. Picking the working space assigns its profile, which
stays when the working space changes later. A choice the document already
has runs nothing, and the other model's profile stays as it is.
Params text, docs/mcp.md and the evidence line in
docs/target-app-parity.md are updated, with catalog rows for the new
labels.
In a window narrower than a popup list's rows (Add New Effect, Tracing
Presets and the other lists built on menu_scroll), the list kept its rows
at full width and the popup ran past the window's right edge. The list is
now no wider than the window allows; a row that does not fit ends in an
ellipsis and shows its full text in a tooltip, dimmed rows included.
Screen readers and clicks still use the row's full text.
Menus that ask for a minimum width (the menu bar's 230 pt, submenus and
context menus) take the window's width when it is less, through
menu_min_width.
The long-popup tests now check that the popup ends inside the window,
and a new test covers a shortened row's tooltip, screen-reader name and
click.
The MCP catalog's ui.runInstalledScript entry was updated without its source in
crates/ui-egui/src/menus/ui_commands.rs, so `cargo xtask ui-commands --check` failed.
The source now carries the same text.
With something selected, the Control bar shows a Select Similar Objects
button and, beside it, the Select Similar Options menu. The button
selects the objects like the first selected one by the attribute kept
for the session; a menu item selects by its attribute and keeps it,
and the kept item is checked. The items are All, Fill Color, Fill &
Stroke, Stroke Color, Stroke Weight, Opacity, Blending Mode,
Appearance, Graphic Style, Shape and Symbol Instance.
- select.similar {by?} runs the select.same command of that name, or
for "all" matches fill and stroke colors, stroke weight, opacity and
blending mode together. An unknown by is an error that keeps the
selection and the kept attribute. The journal records the attribute
used, so a recorded action repeats it, and a failed script or plug-in
call puts the kept attribute back.
- The button and menu belong to the Object Options group and sit at
the right end of the bar, after the X, Y, W and H fields. They take
only the room the other controls leave, so the bar leaves them out
before any other control.
- The Paragraph tests' control_bar_node looks for a label before a
value, so a link's text run listed first no longer stands in for
the link.
Docs: docs/mcp.md, docs/target-app-parity.md.
An sRGB destination converts tagged gray and RGB images to sRGB even when the
document's own RGB profile is sRGB, so the statement that the document's own
profile as destination keeps tagged images applies only to other RGB profiles.
Files saved for version 11 write the keys of their text document by name
(/DocumentResources, /FontSet, /StreamTag) and the kinds of its strikes
by their long names (/FrameStrike). The reader found no stories in them,
so their text objects were filled with the page's type in painting
order: type outside the artboards was lost, and type on them could land
in another text object.
The keys the reader uses now get their numbers from the dictionary they
sit in, from the root down, before the document is read. A run whose
style is written by name as a style's number takes that style. Files
saved for later versions that write a newer key by name among the
numbered ones (a font record's VersionString, a paragraph's
ParagraphDirection) have those keys read too.
Pressing a light other than the selected one, or tabbing to it, selected
it after the frame, and selecting another light clears the keyboard
focus, so the arrow keys then moved nothing. The widget now selects the
light first and gives it the focus after that.
With Convert to Destination and an RGB destination that is the document's
own RGB profile, RGB colors and RGB images keep their numbers, so an image
that carries an ICC profile keeps it. The export contract and progress line
now say so, and the test checks it.
Pattern Options gets the Move Tile with Art checkbox under Size Tile to
Art. With it on, a move of all of the tile art in pattern editing mode
moves the tile as far as the art moved, pixel-grid snapping included:
object.move, object.nudge, object.transform with a translation, and
drags with the Selection tool. A group counts as moved when each of its
members moved. A move of only
some of the art, a copy, a rotation, a scale and a move of
direct-selected anchors leave the tile where it is. The option is off
for a new pattern.
pattern.options takes moveTileWithArt and pattern.list reports it. A
pattern.options call that changes nothing no longer records an undo
step.
The Place dialog gets a Show Import Options checkbox after Link, Template
and Replace. On (the default, saved with the preferences), each PDF, DXF
or text file asks for its import options before it is placed, also each
file of the place cursor when it is clicked or dragged. Off, each file is
placed with the options last confirmed for its format: the Text Import
Options, the DXF fit, lineweight, centering and layer choices, a PDF's
first page and crop box. An encrypted PDF still asks for its password.
file.place takes showImportOptions (true or false; anything else is an
error). Text Import Options now remembers its options and starts from
them.
A drag or release within a pixel of the last stroke point now gives
that point the pen's tilt and rotation, so the outline and the erased
area follow a pen turned or tilted in place. A release without a pen
reading keeps the last pose. The outline's size on Pressure, Tilt,
Bearing or Rotation goes past 1296 pt, as path.eraseRegion sweeps it.
With Convert to Destination and an sRGB destination, a gray or RGB image
with an ICC profile whose pixels can't be decoded (a header past the
decoding allowance) was kept with its profile and no warning. It now
reports that the image is not converted. When the image is left out of
the file as well, only the warning that it is missing is given.
Linked pages on their trim boxes were spaced by the 36 pt gap alone, so
with a large bleed one page's bleed box reached into the next artboard
and a page export could show part of its neighbor. The artboards are
now laid out once the document's bleed is known, 36 pt apart plus the
bleed on both sides: the document's bleed, or a page's own bleed box
where it reaches farther.
The art's bounds no longer clip art that 9-slice guides place, or refuse
art that an instance shows through a nested instance:
- An instance whose art goes through 9-slice guides, at any depth, is
measured as its art placed through the guides, with the objects the
plot leaves out hidden after placing. Leaving them out first changed
the box the guides cut.
- Hidden art is not placed, so it does not use up the limit on placed
objects that the visible instances share.
- The copy of a dynamic symbol that an instance's changes are measured
on keeps the symbol's 9-slice guides and natural size.
- The changes of the instances in a dynamic symbol's art are collected
from all of the art, also from objects at 0% opacity or without paint,
which an instance of the symbol can change.
Merge current main and retain both the Pencil snapping documentation and Tech Circuit library evidence. Only docs/mcp.md required manual conflict resolution. Focused checks passed: no conflict markers or whitespace errors, all 28 catalogs retain four unique nonempty labels, and brush implementation/tests remain unchanged. No full local Cargo CI rerun.
With Output › Convert to Destination and a CMYK destination, or an RGB
destination other than sRGB that images are converted to, an RGB image
that carries an ICC profile had its numbers read as sRGB, so a Display
P3 image came out with the wrong colors. Such an image is now converted
from its profile to sRGB with the color settings' rendering intent, then
to the destination.
- An untagged image converts from sRGB as before.
- A gray image keeps its profile, as gray is not converted.
- A profile the color engine can't read leaves the numbers read as sRGB,
with a warning.
- Preserve Numbers is unchanged.
docs/mcp.md, the document.exportPdf params text and the progress doc
describe the behavior.
The last case of an_instance_placed_on_the_canvas_by_an_older_file_stays_live
read an instance of a symbol the file did not define, so it failed for that
reason as well as for the missing template box. It now defines Dot, so it
fails only when the reader places an older instance without a template box.
The panel's Lighting tab shows a sphere above the list of lights with
every light of the selected 3D effect at its Rotation and Height, filled
in front of the object and hollow behind it. Dragging a light moves it
on its side of the object, previewed while the pointer is down and one
undo step on release; a press selects it in the list. Move Light to Back
and Move Light to Front change the selected light's side. Each light
takes the keyboard focus, where the arrow keys move it (Shift steps
15 degrees), and screen readers name it with its settings. The widget
sends effect.setParams like the light settings below it.