소스 검색

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.
Victor Luchits 10 년 전
부모
커밋
afc97cbd5d
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      src/video/x11/SDL_x11window.c

+ 5 - 2
src/video/x11/SDL_x11window.c

@@ -1329,9 +1329,12 @@ X11_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
     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;
             }