Browse Source

Merge pull request #111192 from Nintorch/fix-joy-weird-presses

Fix invalid reported joypad presses
Rémi Verschelde 2 months ago
parent
commit
fda0e83bd5
1 changed files with 6 additions and 0 deletions
  1. 6 0
      drivers/sdl/joypad_sdl.cpp

+ 6 - 0
drivers/sdl/joypad_sdl.cpp

@@ -232,6 +232,12 @@ void JoypadSDL::process_events() {
 				case SDL_EVENT_JOYSTICK_BUTTON_DOWN:
 					SKIP_EVENT_FOR_GAMEPAD;
 
+					// Some devices report pressing buttons with indices like 232+, 241+, etc. that are not valid,
+					// so we ignore them here.
+					if (sdl_event.jbutton.button >= (int)JoyButton::MAX) {
+						continue;
+					}
+
 					Input::get_singleton()->joy_button(
 							joy_id,
 							static_cast<JoyButton>(sdl_event.jbutton.button), // Godot button constants are intentionally the same as SDL's, so we can just straight up use them