Centralize legacy canvas tool bridge

This commit is contained in:
2026-06-04 11:59:20 +02:00
parent 22bbc93b43
commit c3d85074ac
8 changed files with 273 additions and 209 deletions

View File

@@ -533,16 +533,17 @@ adapter continues.
`pano_cli plan-canvas-tool` exposes app-core planning for draw/erase/line,
camera, grid, copy, cut, fill, mask, flood-fill, pick, and touch-lock toolbar
commands. Canvas tool execution now dispatches through `CanvasToolServices`
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
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.
through `src/legacy_canvas_tool_services.*` 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 mode switching consumes the same
shared bridge through its input-only path 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 the shared bridge delegates to legacy
UI/canvas/history adapters.
`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