Files
artcraft/frontend/apps
Tanish Manku e8db3f577a PageScene: commit panel transform session on mouseup / Enter / Ctrl+Z
Follow-up to 72071c0066. The session-based panel transform recording
fixed pollution but introduced a new bug: while editing the same
object's panel without changing selection, the session never
committed, so Ctrl+Z fell through to the most recent prior entry —
typically the CreateAction for the shape, which deleted it on undo.

Add three document-level commit triggers covering the natural editing
boundaries the user expects:

- mouseup (any document-level mouseup): catches the end of an
  InputVector numeric-scrub drag and any click that moves focus
  elsewhere after typing.
- Enter key: explicit "done editing" commit even when the input
  retains focus.
- Ctrl+Z / Ctrl+Y (capture phase): flushes the pending session before
  the engine's keymap handler runs undo/redo, so the pending edit is
  what gets reverted instead of the prior entry.

Capture phase on the keydown listener is load-bearing: keymap.ts
attaches its handler in bubble phase via useViewportKeyboard. Capture
fires first, so the session commits before keymap dispatches.

mouseup commit is a no-op when no session is open, so attaching it
to document doesn't cost anything for unrelated clicks.

Color session is unchanged (focus/blur boundaries on the color
input still work and don't have this issue).
2026-05-01 04:57:07 -07:00
..
2026-03-12 21:35:29 +07:00