When a click's press lands in one face and its release in the next, the
drag fills both. The bucket now notes the fill every face the drag
crosses had before the press, the release included, so a double-click
or triple-click that follows on such a face compares that fill instead
of the one the first click gave it. This also holds when the release of
the last click crosses into the clicked face.
When the first click makes the Live Paint group, or merges the selection
into a selected group, the crossed face counts with the fill it was made
with: a kept face's paint from the merged group (an unplaced gradient
fixed to its fit), else the fill Make gives it, the topmost fill that
draws of the front-most source path over it that has one. A selected
group's edges no longer count as source paths.
A double-click whose two clicks land on two joined edges now paints the
edges joined through the other edge its clicks painted:
livePaint.strokeEdge takes `through`, edge ids that the join counts as
drawing with `match`, and the tool passes that edge. When the second
press lands on the next edge and is released back on the first, the
double-click matches the first edge's stroke paint from before the
first click.
A press that the view tools take (held Space, the middle button), or
that holds Cmd/Ctrl and goes to the lent selection tool, now counts as
a press that paints nothing, so the clicks around it are not taken for
one triple-click's: the session tells the tool through the new
Tool::press_elsewhere.
The tool doc, docs/mcp.md and the progress-doc line now say that a click
records an undo step only when it changes a paint, and that a
triple-click paints the faces that have the clicked face's fill (and the
edges that draw with the clicked edge's stroke paint) with the bucket's
paint.
Follows #7291.
#7774's Georgian catalog and #7532's script.run answers rows landed in the same batch with
twelve of the same messages, so bundled_catalogs_are_consistent fails on a duplicate. The
first of each pair stays.
Document the existing resize defaults and parameterless focus method. Keep one complete ui.render row, including traceViews, and record the documentation revision.
Source and rendered table reviewed. No local Rust build or tests ran; cargo/rustc are unavailable and PR CI validation is required.
Separate the 57-filter pipeline from the gallery's six browsable categories. Retain the original upcoming raster-effects work; only the already-shipped thumbnails and in-dialog preview leave the missing list.
Documentation review follow-up; no local Rust build or tests ran.
Align the README status and upcoming work with the shipped Effect Gallery thumbnails and in-dialog preview. Keep the filters described as approximations.
Documentation only. Reviewed against the current gallery source, regression coverage, ROADMAP.md and docs/gaps.md. Local cargo/rustc are unavailable; the PR CI gate must complete before validation is claimed.
An envelope record that lies in an outer envelope's AIDeformArtKey
block (X= ... X+) with no group around it now opens as a live envelope
inside the live outer one, and an object's own dictionary there (its
name) applies to it. Each envelope is still compared with its own drawn
art: an inner one that doesn't match keeps its drawn art as the outer
envelope's contents, and an outer one that doesn't match keeps its own.
- An envelope record in an opacity mask's art reads as part of the
mask; its block's X+ no longer ends the mask's art, which failed the
import.
- Envelopes still waiting for their XP when a dictionary ends keep
their drawn art, so a stray XP in a later container cannot take them.
#7532's script.run answers rows and the Russian message rows landed in the same batch with
the same ten messages, so bundled_catalogs_are_consistent fails on a duplicate. The first
of each pair stays.
#7814 made SubPath::anchors an Anchors, and #7810's seam fills, merged in the same batch,
passed it to SubPath::new, which takes a Vec, so vectorcraft-trace doesn't compile on main.
A closed subpath whose every segment is marked is its own run: clone it.
The unpainted rectangle that carries the text wrap options of a symbol
instance, blend, mesh, repeat, placed document, intertwine or envelope
written as a group of its art is now the group's first member. Area type
below the object still wraps by its bounds after reopening, and area type
in the art itself is not wrapped by the rectangle, so art that holds area
type no longer keeps the options on its group and wraps by its members.
A click or marquee outside a symbol instance's box walks the instance's
art. An instance nested in that art was hit or touched anywhere in its
own box, so empty space inside the nested box, where a moved clipping
path reaches past the outer box, selected the outer instance. In that
walk a nested instance now counts only where its own art is, by the
same rule at every level. Inside the outer box nothing changes.
A test exports a knockout group that does not isolate, whose top element
overprints, and checks that its /K group carries no /I true, that the
overprinting graphics state (/OP, /op, /OPM 1) is written, and that the
overprint and the knockout group read back. An isolated group keeps
/I true.
In wireframe mode the effect draws no shadow, so the command check
builds no shadow from its solids either: with Shadows on, Rotate builds
no plane for it, and Extrude & Bevel and Inflate build each solid once.