diff --git a/include/SDL_keycode.h b/include/SDL_keycode.h index d7d5b1dbc..f9a9cee27 100644 --- a/include/SDL_keycode.h +++ b/include/SDL_keycode.h @@ -316,7 +316,9 @@ enum SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), - SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD) + SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD), + + SDLK_CONTEXT_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CONTEXT_MENU), }; /** diff --git a/include/SDL_scancode.h b/include/SDL_scancode.h index 63871aa3b..43edee0a6 100644 --- a/include/SDL_scancode.h +++ b/include/SDL_scancode.h @@ -403,6 +403,7 @@ typedef enum /* @} *//* Usage page 0x0C (additional media keys) */ /* Add any other keys here. */ + SDL_SCANCODE_CONTEXT_MENU = 438, SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes for array bounds */ diff --git a/src/core/linux/SDL_evdev.c b/src/core/linux/SDL_evdev.c index 45abbafc2..f1517e131 100644 --- a/src/core/linux/SDL_evdev.c +++ b/src/core/linux/SDL_evdev.c @@ -396,6 +396,8 @@ SDL_EVDEV_translate_keycode(int keycode) if (keycode < SDL_arraysize(linux_scancode_table)) scancode = linux_scancode_table[keycode]; + if(keycode == KEY_CONTEXT_MENU) + scancode = SDL_SCANCODE_CONTEXT_MENU; /* if (scancode == SDL_SCANCODE_UNKNOWN) {