Route canvas hotkeys through app core

This commit is contained in:
2026-06-03 20:30:07 +02:00
parent 16a1d1e15b
commit 6945ce7e23
8 changed files with 953 additions and 52 deletions

File diff suppressed because one or more lines are too long

View File

@@ -535,8 +535,12 @@ before legacy toolbar selection, `Canvas` mode, pen picking, touch-lock, and
transform state adapters continue. `pano_cli plan-canvas-tool-state` exposes
the matching toolbar active-state refresh used by `App::update` before legacy
`Canvas` mode state remains the source of truth. `NodeCanvas` stylus eraser
and `E` key draw/erase mode switching also consume the same app-core executor
before legacy canvas mode execution continues.
mode switching consumes the same app-core executor before legacy canvas mode
execution continues. `NodeCanvas` keyboard and touch command handling now
consumes `pp_app_core` canvas-hotkey planning for E draw/erase, Ctrl+Z,
Ctrl+Shift+Z, Ctrl+S, Ctrl+Shift+S, Tab UI toggle, brush-size brackets,
Android back, Alt cursor reveal, and two-finger undo before legacy UI/canvas
adapters execute the command.
`pano_cli plan-canvas-clear` exposes app-core planning for the main toolbar
clear-current-layer command, including clear color validation, no-canvas
handling, undo recording intent, and dirty-state intent; live toolbar execution
@@ -1333,6 +1337,17 @@ Results:
touch-lock toggling, plus toolbar active-state derivation for draw, copy, and
bucket modes, service dispatch ordering, pick no-op execution, and malformed
execution payload rejection.
- `pp_app_core_canvas_hotkey_tests` passed, covering E draw/erase toggles,
Ctrl+Z/Ctrl+Shift+Z history planning, Ctrl+S/Ctrl+Shift+S document save
intents, Tab UI toggles, brush-size brackets, Android back and two-finger
undo, no-op Ctrl-less Z, bad-count rejection, executor dispatch, and
malformed brush-size execution rejection.
- `pano_cli_plan_canvas_hotkey_ctrl_z_smoke`,
`pano_cli_plan_canvas_hotkey_save_dirty_version_smoke`,
`pano_cli_plan_canvas_hotkey_erase_smoke`,
`pano_cli_plan_canvas_hotkey_two_finger_undo_smoke`, and
`pano_cli_plan_canvas_hotkey_rejects_bad_count` passed and expose live
canvas keyboard/touch command planning as JSON automation.
- `pano_cli_plan_canvas_tool_draw_smoke`,
`pano_cli_plan_canvas_tool_copy_smoke`,
`pano_cli_plan_canvas_tool_pick_noop_smoke`,