riscos: Report keyboard repeat events

This commit is contained in:
Cameron Cawley 2022-02-23 18:54:31 +00:00 committed by Sam Lantinga
parent af40cb6f00
commit 98353533e5

View File

@ -67,7 +67,6 @@ RISCOS_PollKeyboard(_THIS)
/* Check for key presses */
while (key < 0xff) {
SDL_bool already_pressed = SDL_FALSE;
key = _kernel_osbyte(121, key + 1, 0) & 0xff;
switch (key) {
case 255:
@ -83,22 +82,16 @@ RISCOS_PollKeyboard(_THIS)
break;
default:
/* Do we already know of this key? */
SDL_SendKeyboardKey(SDL_PRESSED, SDL_RISCOS_translate_keycode(key));
/* Record the press so we can detect release later. */
for (i = 0; i < RISCOS_MAX_KEYS_PRESSED; i++) {
if (driverdata->key_pressed[i] == key) {
already_pressed = SDL_TRUE;
break;
}
}
if (!already_pressed) {
SDL_SendKeyboardKey(SDL_PRESSED, SDL_RISCOS_translate_keycode(key));
/* Record the press so we can detect release later. */
for (i = 0; i < RISCOS_MAX_KEYS_PRESSED; i++) {
if (driverdata->key_pressed[i] == 255) {
driverdata->key_pressed[i] = key;
break;
}
if (driverdata->key_pressed[i] == 255) {
driverdata->key_pressed[i] = key;
break;
}
}
}