mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-27 21:17:13 +01:00
* Layers panel: group disclosure triangles expand/collapse groups (#126) Group rows get a disclosure triangle; click toggles the group, Alt-click sets every group. Rows now list a group directly above its contents (the panel used to reverse a pre-order walk, putting headers below their children) and closed groups hide their contents (a kind filter still shows them). The state is Group::expanded (PSD section divider open/closed folder, .pcraft), toggled by the new layer.setExpanded command as a view change: no history step, a clean document stays clean. document.inspect reports it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Shortcuts: every displayed shortcut fires, from wherever focus is (#127) - The menus show the catalogue's Photoshop shortcuts, but only command and shell shortcuts were bound: Image Size (Cmd+Alt+I), Canvas Size (Cmd+Alt+C), Feather (Shift+F6), Layer > Quick Export / Export As, Window > Info (F8) and Actions (Alt+F9) showed a key that did nothing. The binding table (new shortcut_dispatch module) now merges the catalogue's shortcuts for live items, one owner per key. - Any focused widget swallowed every shortcut (egui_wants_keyboard_input): after clicking into a value field (Layers Opacity/Fill, options bar Opacity/Flow/Smoothing), the Curves graph, or Tab, nothing fired until the canvas was clicked. Now a focused text field keeps typing and its editing keys (select all, clipboard, undo, navigation) while Cmd shortcuts and F-keys still fire, as in Photoshop; a focused non-text widget keeps only its navigation keys. - A shortcut whose command is disabled says why on the status bar. - Layers panel rows carry their layer name for accessibility (and tests). Tests press every displayed menu / shell shortcut and every tool letter in a whole-app kittest harness with a layered document (group, type layer, selection) from four focus places, asserting each dispatches its item or the item is greyed with a reason; plus real runs of the common ones. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * UI tests: scroll Layers rows into view under the fixed-height dock The dock (#139) gives the Layers panel a fixed height that scrolls, so a group's triangle or a row can sit below the fold. Tests now scroll the node into view (accesskit ScrollIntoView) and click its real rect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>