From 16f6c1058c5834eb2404e8bfc1d9bc5cdd5ec2ce Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 28 Mar 2025 17:06:29 -0500 Subject: [PATCH] gamepad: Fix inability to disable SDL_EVENT_GAMEPAD_UPDATE_COMPLETE events (cherry picked from commit 712c76fdc1d036f6a01c1876be5e0aa63b312d11) --- src/joystick/SDL_gamepad.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/joystick/SDL_gamepad.c b/src/joystick/SDL_gamepad.c index b8432d0f5e..9e8659d64e 100644 --- a/src/joystick/SDL_gamepad.c +++ b/src/joystick/SDL_gamepad.c @@ -405,15 +405,17 @@ static bool SDLCALL SDL_GamepadEventWatcher(void *userdata, SDL_Event *event) { SDL_AssertJoysticksLocked(); - for (gamepad = SDL_gamepads; gamepad; gamepad = gamepad->next) { - if (gamepad->joystick->instance_id == event->jdevice.which) { - SDL_Event deviceevent; + if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_UPDATE_COMPLETE)) { + for (gamepad = SDL_gamepads; gamepad; gamepad = gamepad->next) { + if (gamepad->joystick->instance_id == event->jdevice.which) { + SDL_Event deviceevent; - deviceevent.type = SDL_EVENT_GAMEPAD_UPDATE_COMPLETE; - deviceevent.common.timestamp = event->jdevice.timestamp; - deviceevent.gdevice.which = event->jdevice.which; - SDL_PushEvent(&deviceevent); - break; + deviceevent.type = SDL_EVENT_GAMEPAD_UPDATE_COMPLETE; + deviceevent.common.timestamp = event->jdevice.timestamp; + deviceevent.gdevice.which = event->jdevice.which; + SDL_PushEvent(&deviceevent); + break; + } } } } break;