From cd8ea5e3f169250cfe435f58d3b4c6c0d42dd2b2 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 3 Jul 2024 11:43:43 -0700 Subject: [PATCH] Only use the default gamepad mapping if an automatic mapping isn't available Fixes https://github.com/libsdl-org/SDL/issues/10162 (cherry picked from commit 0f8054cf87e6b221659acca70d2471e05f2133e1) --- src/joystick/SDL_gamecontroller.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/joystick/SDL_gamecontroller.c b/src/joystick/SDL_gamecontroller.c index 43e035c8ba..410c985d46 100644 --- a/src/joystick/SDL_gamecontroller.c +++ b/src/joystick/SDL_gamecontroller.c @@ -1377,9 +1377,6 @@ static ControllerMapping_t *SDL_PrivateGetControllerMappingForNameAndGUID(const } #endif /* __LINUX__ */ - if (!mapping) { - mapping = s_pDefaultMapping; - } return mapping; } @@ -1492,6 +1489,9 @@ static ControllerMapping_t *SDL_PrivateGetControllerMapping(int device_index) } } + if (!mapping) { + mapping = s_pDefaultMapping; + } return mapping; } @@ -2045,7 +2045,7 @@ SDL_bool SDL_IsGameControllerNameAndGUID(const char *name, SDL_JoystickGUID guid SDL_LockJoysticks(); { - if (SDL_PrivateGetControllerMappingForNameAndGUID(name, guid) != NULL) { + if (s_pDefaultMapping || SDL_PrivateGetControllerMappingForNameAndGUID(name, guid) != NULL) { retval = SDL_TRUE; } else { retval = SDL_FALSE;