SDL: The mode modifier only affects character keys

From 2c333c7355349e7110089b04dfc61be90beebf03 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 30 Jun 2024 23:52:47 -0700
Subject: [PATCH] The mode modifier only affects character keys

---
 src/events/SDL_keymap.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/events/SDL_keymap.c b/src/events/SDL_keymap.c
index c1eb39bf5112d..6dc233b520635 100644
--- a/src/events/SDL_keymap.c
+++ b/src/events/SDL_keymap.c
@@ -199,10 +199,6 @@ SDL_Keycode SDL_GetDefaultKeyFromScancode(SDL_Scancode scancode, SDL_Keymod mods
         return SDLK_UNKNOWN;
     }
 
-    if (modstate & SDL_KMOD_MODE) {
-        return SDLK_UNKNOWN;
-    }
-
     if (scancode < SDL_SCANCODE_A) {
         return SDLK_UNKNOWN;
     }
@@ -219,6 +215,9 @@ SDL_Keycode SDL_GetDefaultKeyFromScancode(SDL_Scancode scancode, SDL_Keymod mods
             shifted = !shifted;
         }
 #endif
+        if (modstate & SDL_KMOD_MODE) {
+            return SDLK_UNKNOWN;
+        }
         if (!shifted) {
             return (SDL_Keycode)('a' + scancode - SDL_SCANCODE_A);
         } else {
@@ -229,6 +228,9 @@ SDL_Keycode SDL_GetDefaultKeyFromScancode(SDL_Scancode scancode, SDL_Keymod mods
     if (scancode < SDL_SCANCODE_CAPSLOCK) {
         SDL_bool shifted = (modstate & SDL_KMOD_SHIFT) ? SDL_TRUE : SDL_FALSE;
 
+        if (modstate & SDL_KMOD_MODE) {
+            return SDLK_UNKNOWN;
+        }
         if (!shifted) {
             return normal_default_symbols[scancode - SDL_SCANCODE_1];
         } else {