Преглед изворни кода

Only use the default gamepad mapping if an automatic mapping isn't available

Fixes https://github.com/libsdl-org/SDL/issues/10162
Sam Lantinga пре 1 година
родитељ
комит
0f8054cf87
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      src/joystick/SDL_gamepad.c

+ 4 - 4
src/joystick/SDL_gamepad.c

@@ -1676,9 +1676,6 @@ static GamepadMapping_t *SDL_PrivateGetGamepadMappingForNameAndGUID(const char *
     }
 #endif /* SDL_PLATFORM_LINUX */
 
-    if (!mapping) {
-        mapping = s_pDefaultMapping;
-    }
     return mapping;
 }
 
@@ -1793,6 +1790,9 @@ static GamepadMapping_t *SDL_PrivateGetGamepadMapping(SDL_JoystickID instance_id
         }
     }
 
+    if (!mapping) {
+        mapping = s_pDefaultMapping;
+    }
     return mapping;
 }
 
@@ -2546,7 +2546,7 @@ SDL_bool SDL_IsGamepadNameAndGUID(const char *name, SDL_JoystickGUID guid)
 
     SDL_LockJoysticks();
     {
-        if (SDL_PrivateGetGamepadMappingForNameAndGUID(name, guid) != NULL) {
+        if (s_pDefaultMapping || SDL_PrivateGetGamepadMappingForNameAndGUID(name, guid) != NULL) {
             retval = SDL_TRUE;
         } else {
             retval = SDL_FALSE;