Skip to content

feat(cursor): pan glide replaces pan smoothing (#430) - #431

Merged
Maxaubert merged 1 commit into
mainfrom
feat/430-pan-glide
Oct 10, 2026
Merged

Maxaubert merged 1 commit into
mainfrom
feat/430-pan-glide

Conversation

@Maxaubert

Copy link
Copy Markdown
Owner

Fixes #430. Stacked on #428 (settings page stack); retarget to main as the stack merges.

Why

Pan smoothing (cursorSmoothing) eased the view toward the pointer: lag, never momentum, and with the Transform engine's DWM centring it did nothing in normal use. What was wanted is inertia.

What

  • Removed Pan smoothing everywhere: cursor mapper easing (and its tick-rate/tick-delta plumbing), config key (old key ignored), Settings row, tray flyout slider, the now-unused ValueFmt::Dec2, tests, docs.
  • Added Pan glide (panGlideMs, 0-600 ms, default 0 = off, Experimental tag): when the hand stops a quick movement (over 300 desktop px/s over the last ~30 ms), the pointer keeps gliding and slows to rest with that time constant; the view follows by DWM centring, so nothing jumps when the hand takes over. Pure logic in src/pan_glide.h with tests.
  • Ends at once on any hand movement or mouse button; off in games (borderless cover), Inspect, detached views (caret, focus, keys), at 1x, and at the monitor edge. Wind's own steps move the tick baseline (lastSetVirtual), so the lock detector and gain learner only see hand motion.
  • Takes Pan smoothing's place in View > Speed and in the tray flyout (saved tray orders drop the old key and append the new one).

Tests

  • build.bat test: 594 passed (new test_pan_glide.cpp; mapper smoothing tests removed). build.bat, build.bat tray build.
  • ui: npx playwright test: 177 passed.
  • Field: deployed for hands-on testing with panGlideMs=150.

Feature: minor version bump at merge time.

🤖 Generated with Claude Code

https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu

@Maxaubert
Maxaubert force-pushed the fix/427-highres-no-glide branch from f87f75d to 719884c Compare October 10, 2026 03:06
The branch is main plus exactly the combined test build's state after this PR
(conflicts with the PRs merged before it resolved as tested), version 0.26.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu
@Maxaubert
Maxaubert changed the base branch from fix/427-highres-no-glide to main October 10, 2026 03:08
@Maxaubert
Maxaubert merged commit c1eccb4 into main Oct 10, 2026
@Maxaubert
Maxaubert deleted the feat/430-pan-glide branch October 10, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace Pan smoothing with Pan glide (momentum after a flick)

1 participant