From 9515fb2501a3ac7125501d5dd5f19aadcfcc7e8d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 31 Jul 2022 16:10:10 -0500 Subject: [PATCH] keyboard: Use SDL_SetKeymap() to set the default keymap This ensures the AZERTY workaround is applied for backends that never call SDL_SetKeymap() themselves. --- src/events/SDL_keyboard.c | 8 +++----- src/events/SDL_keyboard_c.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/events/SDL_keyboard.c b/src/events/SDL_keyboard.c index 9a8c4033f..2ec22853f 100644 --- a/src/events/SDL_keyboard.c +++ b/src/events/SDL_keyboard.c @@ -560,11 +560,9 @@ SDL_UCS4ToUTF8(Uint32 ch, char *dst) int SDL_KeyboardInit(void) { - SDL_Keyboard *keyboard = &SDL_keyboard; - /* Set the default keymap */ - SDL_memcpy(keyboard->keymap, SDL_default_keymap, sizeof(SDL_default_keymap)); - return (0); + SDL_SetKeymap(0, SDL_default_keymap, SDL_NUM_SCANCODES, SDL_FALSE); + return 0; } void @@ -590,7 +588,7 @@ SDL_GetDefaultKeymap(SDL_Keycode * keymap) } void -SDL_SetKeymap(int start, SDL_Keycode * keys, int length, SDL_bool send_event) +SDL_SetKeymap(int start, const SDL_Keycode * keys, int length, SDL_bool send_event) { SDL_Keyboard *keyboard = &SDL_keyboard; SDL_Scancode scancode; diff --git a/src/events/SDL_keyboard_c.h b/src/events/SDL_keyboard_c.h index e911312d0..dc2e882fe 100644 --- a/src/events/SDL_keyboard_c.h +++ b/src/events/SDL_keyboard_c.h @@ -33,7 +33,7 @@ extern int SDL_KeyboardInit(void); extern void SDL_GetDefaultKeymap(SDL_Keycode * keymap); /* Set the mapping of scancode to key codes */ -extern void SDL_SetKeymap(int start, SDL_Keycode * keys, int length, SDL_bool send_event); +extern void SDL_SetKeymap(int start, const SDL_Keycode * keys, int length, SDL_bool send_event); /* Set a platform-dependent key name, overriding the default platform-agnostic name. Encoded as UTF-8. The string is not copied, thus the pointer given to