Ignore OS key repeats for game controls

This commit is contained in:
James R 2023-03-23 22:43:34 -07:00 committed by toaster
parent 9ca196cb89
commit e0f999fcd7
3 changed files with 7 additions and 1 deletions

View file

@ -38,7 +38,7 @@ struct event_t
{
evtype_t type;
INT32 data1; // keys / mouse/joystick buttons
INT32 data2; // mouse/joystick x move
INT32 data2; // mouse/joystick x move; key repeat
INT32 data3; // mouse/joystick y move
INT32 device; // which device ID it belongs to (controller ID)
};

View file

@ -456,6 +456,11 @@ void G_MapEventsToControls(event_t *ev)
case ev_keydown:
if (ev->data1 < NUMINPUTS)
{
if (ev->data2) // OS repeat? We handle that ourselves
{
break;
}
DeviceGameKeyDownArray[ev->data1] = JOYAXISRANGE;
if (AutomaticControllerReassignmentIsAllowed(ev->device))

View file

@ -571,6 +571,7 @@ static void Impl_HandleKeyboardEvent(SDL_KeyboardEvent evt, Uint32 type)
return;
}
event.data1 = Impl_SDL_Scancode_To_Keycode(evt.keysym.scancode);
event.data2 = evt.repeat;
if (event.data1) D_PostEvent(&event);
}