Re-added SDL_GetScancodeFromKey()

This commit is contained in:
Sam Lantinga 2024-08-05 19:09:18 -07:00
parent 4f7c0e7c46
commit afec46dbee
5 changed files with 34 additions and 7 deletions

View file

@ -453,11 +453,11 @@ static SDL_Keycode SDL_ConvertNumpadKeycode(SDL_Keycode keycode, SDL_bool numloc
SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode, SDL_Keymod modstate, SDL_bool key_event)
{
SDL_Keyboard *keyboard = &SDL_keyboard;
SDL_Keycode keycode;
if (key_event) {
SDL_Keymap *keymap = SDL_GetCurrentKeymap();
SDL_bool numlock = (modstate & SDL_KMOD_NUM) != 0;
SDL_Keycode keycode;
// We won't be applying any modifiers by default
modstate = SDL_KMOD_NONE;
@ -474,13 +474,17 @@ SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode, SDL_Keymod modstate, S
if (keyboard->keycode_options & KEYCODE_OPTION_HIDE_NUMPAD) {
keycode = SDL_ConvertNumpadKeycode(keycode, numlock);
}
} else {
// Use the real keymap
SDL_Keymap *keymap = keyboard->keymap;
keycode = SDL_GetKeymapKeycode(keymap, scancode, modstate);
return keycode;
}
return keycode;
return SDL_GetKeymapKeycode(keyboard->keymap, scancode, modstate);
}
SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key, SDL_Keymod *modstate)
{
SDL_Keyboard *keyboard = &SDL_keyboard;
return SDL_GetKeymapScancode(keyboard->keymap, key, modstate);
}
static int SDL_SendKeyboardKeyInternal(Uint64 timestamp, Uint32 flags, SDL_KeyboardID keyboardID, int rawcode, SDL_Scancode scancode, Uint8 state)