Use the exact motion associated with the warp
When Windows DPI scaling is enabled, the warp coordinates will be modified, so make sure we send exactly the coordinates that the warp attempted. Fixes https://github.com/libsdl-org/SDL/issues/8940
This commit is contained in:
1 parent
d34a7c5ed2
commit
8ce6fb2513
1 file changed
+3
-1
@@ -282,6 +282,8 @@ static void WIN_WarpMouse(SDL_Window *window, int x, int y)
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
POINT pt;
|
||||
int warp_x = x;
|
||||
int warp_y = y;
|
||||
|
||||
/* Don't warp the mouse while we're doing a modal interaction */
|
||||
if (data->in_title_click || data->focus_click_pending) {
|
||||
@@ -295,7 +297,7 @@ static void WIN_WarpMouse(SDL_Window *window, int x, int y)
|
||||
WIN_SetCursorPos(pt.x, pt.y);
|
||||
|
||||
/* Send the exact mouse motion associated with this warp */
|
||||
SDL_SendMouseMotion(window, SDL_GetMouse()->mouseID, 0, x, y);
|
||||
SDL_SendMouseMotion(window, SDL_GetMouse()->mouseID, 0, warp_x, warp_y);
|
||||
}
|
||||
|
||||
static int WIN_WarpMouseGlobal(int x, int y)
|
||||
|
||||
Reference in new issue
Block a user