The daemon attaches a CursorByte to every frame it produces, including the frames the GPU's own Viewport sends trigger. The CursorByte handler followed the cursor unconditionally, so a minimap jump away from a stationary cursor snapped straight back: jump → Viewport → frame + re-announced CursorByte → scroll_to_cursor → snap, looping on every scrub move (the reported jitter). Wheel-scrolling past the cursor's screen had the same latent loop. The handler now compares the arriving position to own_cursor and follows only genuine movement — scrolling away from a cursor that isn't moving is the user's prerogative. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| attach.rs | ||
| main.rs | ||