diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c index bbb223728..9bc123c39 100644 --- a/src/joystick/SDL_joystick.c +++ b/src/joystick/SDL_joystick.c @@ -2721,6 +2721,13 @@ int SDL_PrivateJoystickTouchpad(SDL_Joystick *joystick, int touchpad, int finger } #endif + /* We ignore events if we don't have keyboard focus, except for touch release */ + if (SDL_PrivateJoystickShouldIgnoreEvent()) { + if (event_type != SDL_CONTROLLERTOUCHPADUP) { + return 0; + } + } + /* Update internal joystick state */ finger_info->state = state; finger_info->x = x; @@ -2750,6 +2757,11 @@ int SDL_PrivateJoystickSensor(SDL_Joystick *joystick, SDL_SensorType type, const int i; int posted = 0; + /* We ignore events if we don't have keyboard focus */ + if (SDL_PrivateJoystickShouldIgnoreEvent()) { + return 0; + } + for (i = 0; i < joystick->nsensors; ++i) { SDL_JoystickSensorInfo *sensor = &joystick->sensors[i];