[Bf-blender-cvs] [957de391917] blender-v2.92-release: Fix T84645 cursor moves when clicking selector.

Nicholas Rishel noreply at git.blender.org
Fri Jan 15 21:24:49 CET 2021


Commit: 957de39191709da822631dbe0d19829ff995b8c2
Author: Nicholas Rishel
Date:   Wed Jan 13 14:07:03 2021 -0800
Branches: blender-v2.92-release
https://developer.blender.org/rB957de39191709da822631dbe0d19829ff995b8c2

Fix T84645 cursor moves when clicking selector.

The absolute position desktop mapping has been corrected. The correct
mapping is 0-65535 inclusive. Additionally, division by the virtual
desktop width and height needed to be subtracted by 1 as width and
height are one more than the final pixel index.

===================================================================

M	intern/ghost/intern/GHOST_SystemWin32.cpp

===================================================================

diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index ca4912ff2c5..718ace9db4a 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -541,11 +541,11 @@ GHOST_TSuccess GHOST_SystemWin32::setCursorPosition(GHOST_TInt32 x, GHOST_TInt32
   input.type = INPUT_MOUSE;
   input.mi.mouseData = 0;
   input.mi.time = ::GetTickCount();
-  /* Map from virtual screen to 0-65536. */
-  input.mi.dx = (x - GetSystemMetrics(SM_XVIRTUALSCREEN)) * 65536 /
-                GetSystemMetrics(SM_CXVIRTUALSCREEN);
-  input.mi.dy = (y - GetSystemMetrics(SM_YVIRTUALSCREEN)) * 65536 /
-                GetSystemMetrics(SM_CYVIRTUALSCREEN);
+  /* Map from virtual screen to 0-65535 inclusive. */
+  input.mi.dx = (x - GetSystemMetrics(SM_XVIRTUALSCREEN)) * 65535 /
+                (GetSystemMetrics(SM_CXVIRTUALSCREEN) - 1);
+  input.mi.dy = (y - GetSystemMetrics(SM_YVIRTUALSCREEN)) * 65535 /
+                (GetSystemMetrics(SM_CYVIRTUALSCREEN) - 1);
   input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_VIRTUALDESK;
   SendInput(1, &input, sizeof(input));



More information about the Bf-blender-cvs mailing list