From b7aca89466d02ec2da1efc1ba4739cfbe5d6900a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 5 Aug 2024 09:16:43 -0700 Subject: [PATCH] Fixed key names when KEYCODE_OPTION_LATIN_LETTERS is enabled --- src/events/SDL_keymap.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/events/SDL_keymap.c b/src/events/SDL_keymap.c index 53bd6edd5b..6f9a532d8e 100644 --- a/src/events/SDL_keymap.c +++ b/src/events/SDL_keymap.c @@ -1010,19 +1010,16 @@ const char *SDL_GetKeyName(SDL_Keycode key) // SDL_Keycode is defined as the unshifted key on the keyboard, // but the key name is defined as the letter printed on that key, // which is usually the shifted capital letter. - if (key > 0x7F || (key >= 'a' && key <= 'z')) { - SDL_bool translated = SDL_FALSE; + if (key >= 'a' && key <= 'z') { + key = 'A' + (key - 'a'); + } else if (key > 0x7F) { SDL_Scancode scancode = SDL_GetScancodeFromKey(key, SDL_KMOD_NONE); if (scancode != SDL_SCANCODE_UNKNOWN) { SDL_Keycode capital = SDL_GetKeyFromScancode(scancode, SDL_KMOD_SHIFT); if (capital > 0x7F || (capital >= 'A' && capital <= 'Z')) { key = capital; - translated = SDL_TRUE; } } - if (!translated && key >= 'a' && key <= 'z') { - key = 'A' + (key - 'a'); - } } end = SDL_UCS4ToUTF8(key, name);