From 98f93d0aa18328c9290779ef5e995e9c691c52fb Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 15 Nov 2022 11:39:06 -0800 Subject: [PATCH] Fixed building without xkbcommon support --- src/events/SDL_keysym_to_scancode.c | 36 ++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/events/SDL_keysym_to_scancode.c b/src/events/SDL_keysym_to_scancode.c index 53b55891b..d965a375c 100644 --- a/src/events/SDL_keysym_to_scancode.c +++ b/src/events/SDL_keysym_to_scancode.c @@ -26,13 +26,24 @@ #include "SDL_keyboard_c.h" #include "SDL_scancode_tables_c.h" +#if SDL_VIDEO_DRIVER_WAYLAND #include +typedef xkb_keysym_t SDL_xkb_keysym_t; +#else +#include +#include + +typedef KeySym SDL_xkb_keysym_t; +#endif + + /* *INDENT-OFF* */ /* clang-format off */ static const struct { - xkb_keysym_t keysym; + SDL_xkb_keysym_t keysym; SDL_Scancode scancode; } KeySymToSDLScancode[] = { +#if SDL_VIDEO_DRIVER_WAYLAND { XKB_KEY_KP_End, SDL_SCANCODE_KP_1 }, { XKB_KEY_KP_Down, SDL_SCANCODE_KP_2 }, { XKB_KEY_KP_Next, SDL_SCANCODE_KP_3 }, @@ -50,6 +61,25 @@ static const struct { { XKB_KEY_Super_L, SDL_SCANCODE_LGUI }, { XKB_KEY_Super_R, SDL_SCANCODE_RGUI }, { XKB_KEY_Mode_switch, SDL_SCANCODE_MODE }, +#else + { XK_KP_End, SDL_SCANCODE_KP_1 }, + { XK_KP_Down, SDL_SCANCODE_KP_2 }, + { XK_KP_Next, SDL_SCANCODE_KP_3 }, + { XK_KP_Left, SDL_SCANCODE_KP_4 }, + { XK_KP_Begin, SDL_SCANCODE_KP_5 }, + { XK_KP_Right, SDL_SCANCODE_KP_6 }, + { XK_KP_Home, SDL_SCANCODE_KP_7 }, + { XK_KP_Up, SDL_SCANCODE_KP_8 }, + { XK_KP_Prior, SDL_SCANCODE_KP_9 }, + { XK_KP_Insert, SDL_SCANCODE_KP_0 }, + { XK_KP_Delete, SDL_SCANCODE_KP_PERIOD }, + { XK_Execute, SDL_SCANCODE_EXECUTE }, + { XK_Hyper_R, SDL_SCANCODE_APPLICATION }, + { XK_ISO_Level3_Shift, SDL_SCANCODE_RALT }, + { XK_Super_L, SDL_SCANCODE_LGUI }, + { XK_Super_R, SDL_SCANCODE_RGUI }, + { XK_Mode_switch, SDL_SCANCODE_MODE }, +#endif { 0x1008FF65, SDL_SCANCODE_MENU }, /* XF86MenuKB */ { 0x1008FF81, SDL_SCANCODE_F13 }, /* XF86Tools */ { 0x1008FF45, SDL_SCANCODE_F14 }, /* XF86Launch5 */ @@ -60,7 +90,7 @@ static const struct { }; /* This is a mapping from X keysym to Linux keycode */ -static const xkb_keysym_t LinuxKeycodeKeysyms[] = { +static const SDL_xkb_keysym_t LinuxKeycodeKeysyms[] = { /* 0, 0x000 */ 0x0, /* NoSymbol */ /* 1, 0x001 */ 0xFF1B, /* Escape */ /* 2, 0x002 */ 0x31, /* 1 */ @@ -328,7 +358,7 @@ done #endif static const struct { - xkb_keysym_t keysym; + SDL_xkb_keysym_t keysym; int linux_keycode; } ExtendedLinuxKeycodeKeysyms[] = { { 0x1008FF2C, 0x0a2 }, /* XF86XK_Eject */