Repository navigation
fix(inspect): no view shift when toggling Inspect at high zoom (#445) - #446
Merged
Merged
Conversation
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
force-pushed
the
fix/445-inspect-view-shift
branch
from
October 10, 2026 23:57
039cd07 to
aeb1b8d
Compare
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]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 intests/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