From 712c76fdc1d036f6a01c1876be5e0aa63b312d11 Mon Sep 17 00:00:00 2001
From: Cameron Gutman <[EMAIL REDACTED]>
Date: Fri, 28 Mar 2025 17:06:29 -0500
Subject: [PATCH] gamepad: Fix inability to disable
SDL_EVENT_GAMEPAD_UPDATE_COMPLETE events
---
src/joystick/SDL_gamepad.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/joystick/SDL_gamepad.c b/src/joystick/SDL_gamepad.c
index ee3a1785fdc34..c2576a6b562de 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;
-
- deviceevent.type = SDL_EVENT_GAMEPAD_UPDATE_COMPLETE;
- deviceevent.common.timestamp = event->jdevice.timestamp;
- deviceevent.gdevice.which = event->jdevice.which;
- SDL_PushEvent(&deviceevent);
- break;
+ 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;
+ }
}
}
} break;