Skip to content

Commit a9884d9

Browse files
committed
Scale absolute input coordinates to ~4K display to avoid over-sensitivity.
1 parent 4c8cc54 commit a9884d9

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

MouseButtonClicker.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,13 @@ LRESULT CALLBACK WndProc(const HWND hWnd, const UINT message, const WPARAM wPara
8888

8989
// Handle absolute coordinates
9090
// Documentation says these will be in the range [0, 65535]
91-
// However, some devices generate [0, SCREEN_X/Y] instead
92-
// Therefore, delta X/Y won't always be pixel units
93-
lLastClickDeltaX += (lMouseInputLastX - lLastMoveAbsoluteX);
94-
lLastClickDeltaY += (lMouseInputLastY - lLastMoveAbsoluteY);
95-
lLastMoveAbsoluteX = lMouseInputLastX;
96-
lLastMoveAbsoluteY = lMouseInputLastY;
91+
// Scale to [0, 4095] to simulate pixel sizes on a 4K display
92+
const LONG lScaledMouseInputLastX = lMouseInputLastX >> 4;
93+
const LONG lScaledMouseInputLastY = lMouseInputLastY >> 4;
94+
lLastClickDeltaX += (lScaledMouseInputLastX - lLastMoveAbsoluteX);
95+
lLastClickDeltaY += (lScaledMouseInputLastY - lLastMoveAbsoluteY);
96+
lLastMoveAbsoluteX = lScaledMouseInputLastX;
97+
lLastMoveAbsoluteY = lScaledMouseInputLastY;
9798
}
9899
}
99100

0 commit comments

Comments
 (0)