Disable SDL_HINT_JOYSTICK_RAWINPUT by default

Windows can get in a state when it stops reporting raw input events for game controllers until reboot.

The downside of this change is that we lose support for trigger rumble and are limited to 4 controllers again, but if that's important for your application you can use SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, true) to enable this functionality.

Fixes https://github.com/libsdl-org/SDL/issues/13047
This commit is contained in:
Sam Lantinga 2025-05-27 09:43:26 -07:00
parent db972604a8
commit aa870d511e
2 changed files with 3 additions and 3 deletions

View file

@ -2096,8 +2096,8 @@ extern "C" {
* *
* The variable can be set to the following values: * The variable can be set to the following values:
* *
* - "0": RAWINPUT drivers are not used. * - "0": RAWINPUT drivers are not used. (default)
* - "1": RAWINPUT drivers are used. (default) * - "1": RAWINPUT drivers are used.
* *
* This hint should be set before SDL is initialized. * This hint should be set before SDL is initialized.
* *

View file

@ -1030,7 +1030,7 @@ static bool RAWINPUT_JoystickInit(void)
{ {
SDL_assert(!SDL_RAWINPUT_inited); SDL_assert(!SDL_RAWINPUT_inited);
if (!SDL_GetHintBoolean(SDL_HINT_JOYSTICK_RAWINPUT, true)) { if (!SDL_GetHintBoolean(SDL_HINT_JOYSTICK_RAWINPUT, false)) {
return true; return true;
} }