Fix duplicate raw mouse events with XInput2
authorVictor Luchits <vluchits@gmail.com>
Thu, 14 May 2015 14:40:56 +0300
changeset 9614 c9c61d66cfa0
parent 9613 5d7389abafec
child 9615 54a796c13658
Fix duplicate raw mouse events with XInput2 Make XGrabPointer calls in X11_SetWindowGrab and X11_CaptureMouse consistent by passing False to owner_mask along with proper event_mask.
src/video/x11/SDL_x11window.c
--- a/src/video/x11/SDL_x11window.c	Sat May 23 09:33:20 2015 -0700
+++ b/src/video/x11/SDL_x11window.c	Thu May 14 14:40:56 2015 +0300
@@ -1329,9 +1329,12 @@
     if (oldstyle_fullscreen || grabbed) {
         /* Try to grab the mouse */
         for (;;) {
+            const unsigned int mask = ButtonPressMask | ButtonReleaseMask 
+                | PointerMotionMask | FocusChangeMask;
             int result =
-                X11_XGrabPointer(display, data->xwindow, True, 0, GrabModeAsync,
-                             GrabModeAsync, data->xwindow, None, CurrentTime);
+                X11_XGrabPointer(display, data->xwindow, False, mask, 
+                             GrabModeAsync, GrabModeAsync, data->xwindow, 
+                             None, CurrentTime);
             if (result == GrabSuccess) {
                 break;
             }