SDL: Fixed potential infinite recursion opening a Steam Controller

From dccf486a0a61731c0745d2047766e5f3fc4757de Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 14 Nov 2025 13:43:35 -0800
Subject: [PATCH] Fixed potential infinite recursion opening a Steam Controller

This can happen if the controller is opened from an event watcher when the controller is connected.
---
 src/joystick/hidapi/SDL_hidapi_steam_triton.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/joystick/hidapi/SDL_hidapi_steam_triton.c b/src/joystick/hidapi/SDL_hidapi_steam_triton.c
index 315d803d8a2c7..e5c0f1a5c8386 100644
--- a/src/joystick/hidapi/SDL_hidapi_steam_triton.c
+++ b/src/joystick/hidapi/SDL_hidapi_steam_triton.c
@@ -245,6 +245,8 @@ static bool HIDAPI_DriverSteamTriton_SetControllerConnected(SDL_HIDAPI_Device *d
     SDL_DriverSteamTriton_Context *ctx = (SDL_DriverSteamTriton_Context *)device->context;
 
     if (ctx->connected != connected) {
+        ctx->connected = connected;
+
         if (connected) {
             SDL_JoystickID joystickID;
             if (!HIDAPI_JoystickConnected(device, &joystickID)) {
@@ -255,7 +257,6 @@ static bool HIDAPI_DriverSteamTriton_SetControllerConnected(SDL_HIDAPI_Device *d
                 HIDAPI_JoystickDisconnected(device, device->joysticks[0]);
             }
         }
-        ctx->connected = connected;
     }
     return true;
 }