select.lasso takes an optional historyName; the Patch tool sends "Patch Tool" so its
lasso is that step (the Lasso tool keeps "Lasso"). paint.patch records "Patch Selection"
in every mode; the content-aware job keeps its progress text.
Tests: patch_history_names_tests (engine) and patch_tool_history_names_tests (ui-egui).
CodeRabbit found three things after the last fix-up:
- `engine.execute` and action steps without `name` replied `selected: []`
while the panel listed the layers its kept Name text matches. `run` now
fills in the panel's Name text for every path, as the menu did.
- With Filter Options > Hide, Find Layers left a focus request that took
the caret once the row was shown again. In the reference application the
row stays hidden and showing it later does not focus the field, so the
request is only made for a drawn row.
- The control protocol said the selection never changes; the Name filter
deselects a selected layer it hides (#10879). The doc now says so and
describes each entry point and the reply.
Tests for the first two fail without the fix.
Co-Authored-By: NaufalDzz <NaufalDzz@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflicts: psd_import.rs (main's vector_preview field kept, the SmartObject
still built as a binding so pin_puppet_meshes runs), smart_cmds/rendering.rs
(main's JobCtx argument kept next to the PR's placed_puppet_params).
Co-Authored-By: Tungtono <Tungtono@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Also point the module comments at #10710's table: mapped events leave docs/atn.md's measured table (CodeRabbit review on docs/atn.md:1002).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Create Droplet (CrtD) loads as file.automate.createDroplet for the form
the droplet plays the same way (a Folder destination with Override
Action "Save As"), plays, and saves back as recorded; subfolders, Save
and Close, custom naming, an error log or suppressed dialogs keep the
Photoshop step. The Gradient tool's Make + Set of a gradient fill layer
already map since #10771; a test now covers that recorded form. Print
stays a kept step: its two recorded steps would print twice.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main moved the files this PR changed (engine/src/cmd/edit_menu_cmds/fade.rs,
ui-egui/src/canvas/filter_preview.rs, dialogs/filter_dialog.rs) and Fade now also
fades alpha channels and the Quick Mask. The preview is ported onto that:
- engine: fade_preview captures the blend (FadePreview) from the session; render()
blends it on a copy that shares the document's tiles, so only the faded area is
blended and rewritten (review: no whole-surface copy).
- ui-egui: the blend and the flatten run on the filter preview worker in the
desktop app, like every filter preview, and inline on the web.
- tests: the preview matches OK for alpha channels and the Quick Mask too; the
dialog test previews, cancels (document, history and Fade unchanged), then OKs
on both the worker and the inline path.
Co-Authored-By: Korg1ch <Korg1ch@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`docs/ui-parity.md`'s status line conflicted: the branch and main each
prepended a clause at the head of the change list, and the branch also
carried the newer `Last updated` date. The merged line keeps main's
toolbar tool-memory clause (#3569) word for word after our Reset
Transform clause (#11662), with one `Change:` header and the later date.
count.deleteGroup kept the same index current after deleting the
current group, so with three groups and the second current the third
became current. The first remaining group now becomes current, as the
reference application does. Deleting another group by index still keeps
the current one (#5654), and deleting the last group still leaves none.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>