| Summary: | Missing X11 to keycode mappings | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Michael Roe <mroe149227> |
| Component: | events | Assignee: | Sam Lantinga <slouken> |
| Status: | NEW --- | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | 2.0.8 | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
The mapping from X11 keysyms to SDL keycodes in src/video/x11/SDL_x11keyboard.c is missing entries for the multimedia keys found on some keyboards, such as the Microsoft Natural 4000. The consequence is that these keys don't work in SDL2 applications that needs a keycode to keysym mapping. The following patch will fix the issue: *** SDL_x11keyboard.c.old 2018-05-11 19:33:24.165362000 +0100 --- SDL_x11keyboard.c 2018-05-11 19:36:07.443282000 +0100 *************** *** 29,34 **** --- 29,35 ---- #include "../../events/scancodes_xfree86.h" #include <X11/keysym.h> + #include <X11/XF86keysym.h> #include <X11/XKBlib.h> #include "imKStoUCS.h" *************** *** 148,153 **** --- 149,174 ---- { XK_apostrophe, SDL_SCANCODE_APOSTROPHE }, { XK_bracketleft, SDL_SCANCODE_LEFTBRACKET }, { XK_bracketright, SDL_SCANCODE_RIGHTBRACKET }, + { XF86XK_Cut, SDL_SCANCODE_CUT }, + { XF86XK_Copy, SDL_SCANCODE_COPY }, + { XF86XK_Paste, SDL_SCANCODE_PASTE }, + { XF86XK_AudioMute, SDL_SCANCODE_MUTE }, + { XF86XK_AudioRaiseVolume, SDL_SCANCODE_VOLUMEUP }, + { XF86XK_AudioLowerVolume, SDL_SCANCODE_VOLUMEDOWN }, + { XF86XK_AudioNext, SDL_SCANCODE_AUDIONEXT }, + { XF86XK_AudioPrev, SDL_SCANCODE_AUDIOPREV }, + { XF86XK_AudioStop, SDL_SCANCODE_AUDIOSTOP }, + { XF86XK_AudioPlay, SDL_SCANCODE_AUDIOPLAY }, + { XF86XK_Mail, SDL_SCANCODE_MAIL }, + { XF86XK_Calculator, SDL_SCANCODE_CALCULATOR }, + { XF86XK_Search, SDL_SCANCODE_AC_SEARCH }, + { XF86XK_HomePage, SDL_SCANCODE_AC_HOME }, + { XF86XK_Back, SDL_SCANCODE_AC_BACK }, + { XF86XK_Forward, SDL_SCANCODE_AC_FORWARD }, + { XF86XK_Refresh, SDL_SCANCODE_AC_REFRESH }, + { XF86XK_Favorites, SDL_SCANCODE_AC_BOOKMARKS }, + { XF86XK_AudioRewind, SDL_SCANCODE_AUDIOREWIND }, + { XF86XK_AudioForward, SDL_SCANCODE_AUDIOFASTFORWARD }, }; static const struct (This is also available on github at https://github.com/michael-roe/SDL-mirror/commit/5d13872bbfcf61c85735207731f09c5248a11052 (in branch x11-keyboard)