mirror of
https://github.com/penpot/penpot.git
synced 2026-07-29 01:16:14 +00:00
Holding an arrow key on a selection with a fast OS key-repeat rate crashed the workspace with React error #185 (Maximum update depth exceeded): each OS key-repeat event was converted 1:1 into a `set-modifiers`/`set-wasm-modifiers` store write inside `nudge-selected-shapes` with no throttle, starving the renderer. The sibling mouse-driven resize/rotate/move paths got an `rx/sample` throttle in PR #10560; the keyboard-nudge path was the only transform stream left un-throttled. This change applies the same `rx/sample` throttle to the nudge stream, mirroring the drag-path structure, and adds a regression test guarding the final committed position invariant under a burst of 20 `move-selected` events for both the WASM and legacy (non-WASM) branches. Closes #10726 AI-assisted-by: glm-5.2