|
|
|
@ -101,6 +101,8 @@ static const char *numpad[] = { "end", "down", "pagedown", "left", "", "right",
|
|
|
|
|
|
|
|
|
|
static const char *get_key_name(const SDL_Event *e, char *buf) {
|
|
|
|
|
SDL_Scancode scancode = e->key.keysym.scancode;
|
|
|
|
|
|
|
|
|
|
#if !defined(__amigaos4__) && !defined(__MORPHOS__)
|
|
|
|
|
/* Is the scancode from the keypad and the number-lock off?
|
|
|
|
|
** We assume that SDL_SCANCODE_KP_1 up to SDL_SCANCODE_KP_9 and SDL_SCANCODE_KP_0
|
|
|
|
|
** and SDL_SCANCODE_KP_PERIOD are declared in SDL2 in that order. */
|
|
|
|
@ -108,6 +110,8 @@ static const char *get_key_name(const SDL_Event *e, char *buf) {
|
|
|
|
|
!(e->key.keysym.mod & KMOD_NUM)) {
|
|
|
|
|
return numpad[scancode - SDL_SCANCODE_KP_1];
|
|
|
|
|
} else {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* We need to correctly handle non-standard layouts such as dvorak.
|
|
|
|
|
Therefore, if a Latin letter(code<128) is pressed in the current layout,
|
|
|
|
|
then we transmit it as it is. But we also need to support shortcuts in
|
|
|
|
@ -119,7 +123,10 @@ static const char *get_key_name(const SDL_Event *e, char *buf) {
|
|
|
|
|
strcpy(buf, SDL_GetScancodeName(scancode));
|
|
|
|
|
str_tolower(buf);
|
|
|
|
|
return buf;
|
|
|
|
|
|
|
|
|
|
#if !defined(__amigaos4__) && !defined(__MORPHOS__)
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int f_poll_event(lua_State *L) {
|
|
|
|
|