From 419ae29d90d3934e1a382cd693ac60a1f492e43a Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 3 Jan 2022 21:44:18 -0600 Subject: [PATCH] joystick: Move WGI driver initialization after Windows driver WGI calls SDL_DINPUT_JoystickPresent() so we need to be sure DInput remains initialized for the lifetime of the WGI driver to avoid a crash or duplicated joysticks between DInput and WGI. --- src/joystick/SDL_joystick.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c index 00b644063..696038d2e 100644 --- a/src/joystick/SDL_joystick.c +++ b/src/joystick/SDL_joystick.c @@ -56,12 +56,12 @@ static SDL_JoystickDriver *SDL_joystick_drivers[] = { #ifdef SDL_JOYSTICK_RAWINPUT /* Before WINDOWS_ driver, as WINDOWS wants to check if this driver is handling things */ &SDL_RAWINPUT_JoystickDriver, #endif +#if defined(SDL_JOYSTICK_DINPUT) || defined(SDL_JOYSTICK_XINPUT) /* Before WGI driver, as WGI wants to check if this driver is handling things */ + &SDL_WINDOWS_JoystickDriver, +#endif #if defined(SDL_JOYSTICK_WGI) &SDL_WGI_JoystickDriver, #endif -#if defined(SDL_JOYSTICK_DINPUT) || defined(SDL_JOYSTICK_XINPUT) - &SDL_WINDOWS_JoystickDriver, -#endif #if defined(SDL_JOYSTICK_WINMM) &SDL_WINMM_JoystickDriver, #endif