gamepad: Fix inability to disable SDL_EVENT_GAMEPAD_UPDATE_COMPLETE events

This commit is contained in:
Cameron Gutman
2025-03-28 17:06:29 -05:00
parent 418acf6295
commit 712c76fdc1

View File

@@ -405,15 +405,17 @@ static bool SDLCALL SDL_GamepadEventWatcher(void *userdata, SDL_Event *event)
{ {
SDL_AssertJoysticksLocked(); SDL_AssertJoysticksLocked();
for (gamepad = SDL_gamepads; gamepad; gamepad = gamepad->next) { if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_UPDATE_COMPLETE)) {
if (gamepad->joystick->instance_id == event->jdevice.which) { for (gamepad = SDL_gamepads; gamepad; gamepad = gamepad->next) {
SDL_Event deviceevent; if (gamepad->joystick->instance_id == event->jdevice.which) {
SDL_Event deviceevent;
deviceevent.type = SDL_EVENT_GAMEPAD_UPDATE_COMPLETE; deviceevent.type = SDL_EVENT_GAMEPAD_UPDATE_COMPLETE;
deviceevent.common.timestamp = event->jdevice.timestamp; deviceevent.common.timestamp = event->jdevice.timestamp;
deviceevent.gdevice.which = event->jdevice.which; deviceevent.gdevice.which = event->jdevice.which;
SDL_PushEvent(&deviceevent); SDL_PushEvent(&deviceevent);
break; break;
}
} }
} }
} break; } break;