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.
--- 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;
}