From b599205d0ca7d8bcbed47579caa1e0cebc7009a7 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 9 Aug 2022 09:50:55 -0400 Subject: [PATCH] x11: Don't look up xinput2 devices unless we're in relative mode. --- src/video/x11/SDL_x11xinput2.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/video/x11/SDL_x11xinput2.c b/src/video/x11/SDL_x11xinput2.c index c788b7432..db3187b01 100644 --- a/src/video/x11/SDL_x11xinput2.c +++ b/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);