Process repeated joystick key events on Android

This prevents them from being interpreted as keyboard keys by the Java code, and if internally we are treating them as keyboard keys, they'll be repeated properly.

Fixes https://github.com/libsdl-org/SDL/issues/15664
This commit is contained in:
Sam Lantinga 2026-05-21 06:50:21 -07:00
parent 516f4a0bd5
commit 3545bad589

View file

@ -1505,9 +1505,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
// Furthermore, it's possible a game controller has SOURCE_KEYBOARD and
// SOURCE_JOYSTICK, while its key events arrive from the keyboard source
// So, retrieve the device itself and check all of its sources
//
// Echo events (event.getRepeatCount() > 0) should be ignored
if (SDLControllerManager.isDeviceSDLJoystick(deviceId) && event.getRepeatCount() == 0) {
if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) {
// Note that we process events with specific key codes here
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (SDLControllerManager.onNativePadDown(deviceId, keyCode, event.getScanCode())) {