Skip to content

fix(inspect): no view shift when toggling Inspect at high zoom (#445) - #446

Merged
Maxaubert merged 2 commits into
mainfrom
fix/445-inspect-view-shift
Oct 11, 2026
Merged

Maxaubert merged 2 commits into
mainfrom
fix/445-inspect-view-shift

Conversation

@Maxaubert

@Maxaubert Maxaubert commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Refs #445 (stays open for the exit shift).

What. Entering Inspect at high zoom no longer shifts the view. In a transform session DWM centring stays on after entering Inspect until the look point first moves, and leaving without having moved skips the warp and its 1 px shape jiggle. After an exit where the look point moved, Wind keeps its own centre until the hand first moves the pointer.

Why. Wind writes the same transform in both states; free mode shows DWM centring, which sits 1 desktop px off the pointer (a learned offset). Switching to Wind's centre at the toggle moved the view by that pixel.

Measured (10.5x, 60-144 fps capture): entering Inspect shifted 10-12 px in every run before, 0 after (field-confirmed).

Not fixed: after leaving Inspect, DWM re-centres a pixel off once the cursors are swapped back, and the first hand movement corrects it (seen in apps such as the terminal and browser). Tried and dropped: predicting the offset from the cursor hotspot (not predictable), removing the exit nudges (no change). Remaining idea on #445: hide the pointer without swapping cursor images.

Tests. build.bat test: 0 failed (new cases in tests/test_native_cursor.cpp). Signed UIAccess build deployed and measured on this PC.

Version 0.29.1 -> 0.29.2 (fix). Unsigned in CI as usual.

🤖 Generated with Claude Code

https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu

Maxaubert and others added 2 commits October 11, 2026 01:47
DWM centring sits a desktop pixel off Wind's own centre (learned from Wind's pixel-and-back
nudges, which panning needs), so switching to Wind's centre at the Inspect toggle moved the view
about 11 screen px at 10x. DWM centring now stays on until the look point first moves, and leaving
without having moved skips the warp and its shape jiggle. Measured at 10.5x: entry shift 10-12 px
in every run -> 0; exit shift in about half the runs -> 1 of 3.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu
Leaving Inspect after moving the look point handed the view back to DWM centring at the toggle,
which shifted it by DWM's pixel (field 2026-10-11). Wind now keeps writing its own centre until
the pointer first moves.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu
@Maxaubert
Maxaubert force-pushed the fix/445-inspect-view-shift branch from 039cd07 to aeb1b8d Compare October 10, 2026 23:57
@Maxaubert
Maxaubert merged commit 8532b01 into main Oct 11, 2026
1 check passed
@Maxaubert
Maxaubert deleted the fix/445-inspect-view-shift branch October 11, 2026 00:25
Maxaubert added a commit that referenced this pull request Oct 11, 2026
…443) (#447)

Review of #444/#446:
- The game-drawn cursor mode switched on for any covering window that hides the pointer (a video
  player's idle hide, hiding while typing), handing the view to Wind and moving it by DWM's pixel.
  It now switches on only while the hidden pointer moves (GameCursorStep).
- Warm pulses follow who writes the view (!dc.freeCursor), so they run with a game-drawn cursor and
  in the hold after Inspect.
- The pointer history is cleared at session start.
- The pan_glide.h include comment had moved onto game_cursor.h.


Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu

Co-authored-by: Claude Opus 5.5 <[email protected]>
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.

1 participant