photocraft/docs
FinnNk 53d814f643
feat: Photoshop's layer and selection keys (Ctrl+, toggle, Ctrl+\, /, Ctrl+Alt+2, Ctrl+Alt+Backspace, Tab rename, Alt-click thumbnail) (#3710)
* feat(engine): Ctrl+, toggles a layer's visibility and / its transparency lock

Photoshop's Ctrl+, (Cmd+, on macOS) hides the selected layers and, once
they are all hidden, shows them again: its Layer menu item then reads
Show Layers. layer.hideLayers now does the same, so the key toggles: it
shows them only when every targeted layer is hidden.

The / key toggles Lock Transparent Pixels, as the Layers panel's first
lock button does (layer.toggleLockTransparency). With several layers
selected, any unlocked one means lock them all; the Background, which
can't take this lock, is left out. Each press is one undoable step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(engine): Ctrl+\ targets the layer mask and Ctrl+Alt+2 loads luminosity

Photoshop's Ctrl+\ (Cmd+\) targets the active layer's mask, as clicking
its thumbnail does, beside Ctrl+2 for the composite
(channel.target.layerMask; greyed when the layer has no mask). Its
Ctrl+Alt+2 (Cmd+Option+2) loads the image's luminosity as a selection,
the Ctrl-click on the composite channel (select.loadLuminosity).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(engine): Ctrl+Alt+Backspace fills from history

Photoshop's Ctrl+Alt+Backspace (Cmd+Option+Delete) fills the selection, or
the layer, from the History Brush's source state. edit.fillHistory is
edit.fill with contents "history": the oldest state still held, unless
"state" names another. It joins the other fill keys, so it honours the
Channels panel target and appears with them in Keyboard Shortcuts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(ui): Tab renames the next layer; Alt-click a thumbnail fits the layer

While a layer name is being edited, Tab commits it and starts renaming the
layer below, and Shift+Tab the layer above, as in Photoshop; the
Background, which isn't renamed in place, ends it. Alt-clicking a layer's
thumbnail selects the layer and fits its content on screen (View › Fit
Layer(s) on Screen).

Key tests cover Ctrl+,, /, Ctrl+\, Ctrl+Alt+2 and Ctrl+Alt+Backspace
through the shortcut dispatcher. docs/ui-parity.md lists the new keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ui): an explicit channel target drives the Layers panel's mask target

After Ctrl+\ targeted the layer mask, Ctrl+2 moved the Channels target back
to the composite, but the Layers panel kept the mask targeted (its own
flag, which only ever followed the engine towards the mask), so painting
still went to the mask. The same happened after clicking the mask
thumbnail. Any channel.target command (Ctrl+2, Ctrl+\, Ctrl+3…) now sets
the panel's mask and vector-mask targets from the engine's target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Use Document::is_background after #4036 removed extra_cmds::is_background

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-12 07:32:23 -04:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms, attribution 2026-10-04 10:06:17 -04:00
images PSD text fill: keep the fix and its tests, drop the proof-only screenshots and example 2026-10-09 01:57:17 +07:00
architecture.md Support automatic monitor ICC profiles on Linux X11 (#2963) 2026-10-12 01:17:59 -04:00
brush-parity.md Brush and Pencil: hold ~ to erase, and Clear mode (#3439) (#3465) 2026-10-12 00:02:42 -04:00
camera-raw-histogram.md Camera Raw: read and write settings as a live PSD Smart Filter (part of #215) (#459) 2026-10-07 17:59:16 -04:00
camera-raw-zoom.md Rework Camera Raw filter preview and navigation (#781) 2026-10-07 18:40:24 -04:00
color-picker.md Type Color Picker opens the full Color Picker; screen eyedropper with a pixel loupe (#1232) 2026-10-09 00:30:50 -04:00
context-menu-inventory.md Zoom and Hand tools: right-click the canvas for the view menu (#3242) (#3255) 2026-10-11 12:50:01 -04:00
context-menu-parity.md Zoom and Hand tools: right-click the canvas for the view menu (#3242) (#3255) 2026-10-11 12:50:01 -04:00
contributing.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#2696) 2026-10-10 15:09:04 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#898) 2026-10-07 21:22:11 -04:00
control-protocol.md automation: say why a command is disabled in engine.commands (#3740) 2026-10-12 07:13:57 -04:00
decisions.md Keep duplicated Smart Objects linked to shared contents (#2222) 2026-10-10 05:05:56 -04:00
development.md Content-Aware tools: faster, cancellable at once, same pixels (P21, P22, P49) (#3395) 2026-10-12 00:11:10 -04:00
file-format-parity.md feat(save): File › Save keeps a JPEG's quality and a WebP's lossy/lossless encoding (#2399) (#4032) 2026-10-12 05:45:50 -04:00
five-algorithm-performance.json Five exact-output speedups: dense Extrude 160s to 0.39s (#2685) 2026-10-11 10:50:45 -04:00
five-algorithm-performance.md Five exact-output speedups: dense Extrude 160s to 0.39s (#2685) 2026-10-11 10:50:45 -04:00
gaps.md Character panel: OpenType feature buttons (TYPE-218-5, #3752) (#3757) 2026-10-12 04:52:23 -04:00
gpu-composite-reuse.md Design: bounded GPU stack prefix reuse for property edits (#1164) 2026-10-11 02:08:08 -04:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#2696) 2026-10-10 15:09:04 -04:00
iris-blur-performance.md Speed up Iris Blur without changing output (#2578) 2026-10-10 14:00:53 -04:00
localization-es.md i18n(es): native-style review of the Spanish catalog (#3154) 2026-10-11 10:43:15 -04:00
localization-it.md i18n(it): translate the dynamic labels the Italian catalog was missing (#3742) 2026-10-12 04:38:03 -04:00
localization-ko.md Improve Korean terminology and dynamic UI translation coverage (#604) 2026-10-07 16:32:47 -04:00
localization-parity.md i18n(it): translate the dynamic labels the Italian catalog was missing (#3742) 2026-10-12 04:38:03 -04:00
localization-zh-hans.md i18n: complete Simplified Chinese catalog and localize brush sections (#359) 2026-10-07 07:46:52 -04:00
localization.md Add Vietnamese localization (#2636) 2026-10-12 03:05:18 -04:00
mcp.md MCP: command_batch says it is not atomic, and the docs explain recovery (#3338) 2026-10-11 22:10:12 -04:00
nikon-nef-development.md Keep fitted Camera Raw colour during tuning and crop Nikon D5100 borders (#3201) 2026-10-11 19:12:19 -04:00
octagonal-mask-performance.md Compute exact octagonal mask shifts with bounded workspace (#2154) 2026-10-10 06:46:06 -04:00
ora.md Add OpenRaster (.ora) import and export (#2257) 2026-10-10 08:40:35 -04:00
parity-checklist.md Type menu: Anti-Alias › None first and checked; checks follow the edited layer (#2983) (#2984) 2026-10-11 11:35:38 -04:00
pdn.md Add native layered Paint.NET (.pdn) import (#1998) 2026-10-09 21:05:00 -04:00
pixelate-performance.json Pixelate: CMYK Facet 13.7x faster, Lab halftone 5.0x faster (#2588) 2026-10-10 14:03:03 -04:00
pixelate-performance.md Pixelate: CMYK Facet 13.7x faster, Lab halftone 5.0x faster (#2588) 2026-10-10 14:03:03 -04:00
plugins.md Plug-ins: keep the originating error across parallel bands (#1654) 2026-10-09 09:11:00 -04:00
proximity-match-performance.md Proximity Match: 1.5-3.8x faster stroke searches, smaller mask tables (#2101) 2026-10-09 19:34:26 -04:00
quick-selection-performance.md Quick Selection: 3.5x faster CPU strokes with hybrid graph cuts (#2436) 2026-10-10 14:17:48 -04:00
radial-blur-performance.md Optimize Radial Blur sampling without changing output (#1499) 2026-10-09 14:41:52 -04:00
release-playbook.md docs: stop linking readers to the private craftrules repo (#493) (#779) 2026-10-08 15:04:21 -04:00
releasing.md Security: verify AppImage build inputs (#2270) 2026-10-11 22:33:26 -06:00
roadmap.md Tools: Artboard tool (#2858) (#2862) 2026-10-11 07:12:53 -04:00
scorecard.md Actions: replay tests for crop, filters, selections and styled text on a second document (AUTO-219-4) (#3566) 2026-10-12 05:36:39 -04:00
selection-distance-performance.md Selection distance transforms: 7.6-10.6x faster and correct past 4K (#2093) 2026-10-09 19:28:33 -04:00
shape-strokes.md Fix Shape Stroke controls, popup interactions and paint colours (#3019) 2026-10-11 09:46:44 -04:00
target-app-parity.md Speed up Tilt-Shift with existing per-level halo trimming (#2880) 2026-10-11 11:58:04 -04:00
tilt-shift-performance.md Speed up Tilt-Shift with existing per-level halo trimming (#2880) 2026-10-11 11:58:04 -04:00
ui-design.md fix(ui): one eliding label for fixed-width chrome, so translations can't overrun (#3580) (#3616) 2026-10-12 04:10:40 -04:00
ui-parity.md feat: Photoshop's layer and selection keys (Ctrl+, toggle, Ctrl+\, /, Ctrl+Alt+2, Ctrl+Alt+Backspace, Tab rename, Alt-click thumbnail) (#3710) 2026-10-12 07:32:23 -04:00