Win32: Fix issue with SetCapture & negative values.
authorJørgen P. Tjernø <jorgen@valvesoftware.com>
Wed, 05 Jun 2013 12:00:18 -0700
changeset 7276 37814e7eeff3
parent 7275 0a6b3b998814
child 7277 1290cd7f34af
Win32: Fix issue with SetCapture & negative values. This fixes an issue where we were using the wrong macros to extract the position from WM_MOUSEMOVE, so negative values were behaving incorrectly. These would be generated in multimon situations, or if you use SetCapture. Fixes http://bugzilla.libsdl.org/show_bug.cgi?id=1175
src/video/windows/SDL_windowsevents.c
--- a/src/video/windows/SDL_windowsevents.c	Wed Jun 05 12:00:15 2013 -0700
+++ b/src/video/windows/SDL_windowsevents.c	Wed Jun 05 12:00:18 2013 -0700
@@ -33,6 +33,8 @@
 /* Dropfile support */
 #include <shellapi.h>
 
+/* For GET_X_LPARAM, GET_Y_LPARAM. */
+#include <windowsx.h>
 
 /*#define WMMSG_DEBUG*/
 #ifdef WMMSG_DEBUG
@@ -381,7 +383,7 @@
 
     case WM_MOUSEMOVE:
         if( !SDL_GetMouse()->relative_mode )
-            SDL_SendMouseMotion(data->window, 0, 0, LOWORD(lParam), HIWORD(lParam));
+            SDL_SendMouseMotion(data->window, 0, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
         /* don't break here, fall through to check the wParam like the button presses */
     case WM_LBUTTONUP:
     case WM_RBUTTONUP: