Browse Source

x11: Don't look up xinput2 devices unless we're in relative mode.

Ryan C. Gordon 2 years ago
parent
commit
b599205d0c
1 changed files with 7 additions and 2 deletions
  1. 7 2
      src/video/x11/SDL_x11xinput2.c

+ 7 - 2
src/video/x11/SDL_x11xinput2.c

@@ -280,17 +280,22 @@ X11_HandleXinput2Event(SDL_VideoData *videodata, XGenericEventCookie *cookie)
         case XI_RawMotion: {
             const XIRawEvent *rawev = (const XIRawEvent*)cookie->data;
             SDL_Mouse *mouse = SDL_GetMouse();
-            SDL_XInput2DeviceInfo *devinfo = xinput2_get_device_info(videodata, rawev->deviceid);
+            SDL_XInput2DeviceInfo *devinfo;
             double coords[2];
             double processed_coords[2];
             int i;
 
             videodata->global_mouse_changed = SDL_TRUE;
 
-            if (!devinfo || !mouse->relative_mode || mouse->relative_mode_warp) {
+            if (!mouse->relative_mode || mouse->relative_mode_warp) {
                 return 0;
             }
 
+            devinfo = xinput2_get_device_info(videodata, rawev->deviceid);
+            if (!devinfo) {
+                return 0;  /* oh well. */
+            }
+
             parse_valuators(rawev->raw_values,rawev->valuators.mask,
                             rawev->valuators.mask_len,coords,2);