Some fixes for keyboard on wayland
This commit is contained in:
parent
2102b059de
commit
8989cc97b5
@ -330,63 +330,73 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void keyboard_key(void* data, wl_keyboard* keyboard, uint32_t serial,
|
static void keyboard_key(void* data, wl_keyboard* keyboard, uint32_t serial,
|
||||||
uint32_t time, uint32_t key, uint32_t state_w)
|
uint32_t time, uint32_t key, uint32_t state)
|
||||||
{
|
{
|
||||||
CIrrDeviceWayland* device = static_cast<CIrrDeviceWayland*>(data);
|
CIrrDeviceWayland* device = static_cast<CIrrDeviceWayland*>(data);
|
||||||
|
|
||||||
if (!device->m_xkb_state)
|
if (!device->m_xkb_state)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wl_keyboard_key_state state = (wl_keyboard_key_state)state_w;
|
|
||||||
uint32_t code = key + 8;
|
|
||||||
xkb_keysym_t sym = XKB_KEY_NoSymbol;
|
xkb_keysym_t sym = XKB_KEY_NoSymbol;
|
||||||
|
wchar_t key_char = 0;
|
||||||
|
|
||||||
const xkb_keysym_t* syms;
|
const xkb_keysym_t* syms;
|
||||||
uint32_t num_syms = xkb_state_key_get_syms(device->m_xkb_state, code,
|
uint32_t num_syms = xkb_state_key_get_syms(device->m_xkb_state, key + 8,
|
||||||
&syms);
|
&syms);
|
||||||
|
|
||||||
if (num_syms == 1)
|
if (num_syms == 1)
|
||||||
sym = syms[0];
|
sym = syms[0];
|
||||||
|
|
||||||
bool ignore = false;
|
if (state == WL_KEYBOARD_KEY_STATE_PRESSED)
|
||||||
|
|
||||||
if (sym != XKB_KEY_NoSymbol && device->m_xkb_compose_state)
|
|
||||||
{
|
{
|
||||||
xkb_compose_feed_result result;
|
xkb_keysym_t key_sym = sym;
|
||||||
result = xkb_compose_state_feed(device->m_xkb_compose_state, sym);
|
bool ignore = false;
|
||||||
|
|
||||||
if (result == XKB_COMPOSE_FEED_ACCEPTED)
|
if (sym != XKB_KEY_NoSymbol && device->m_xkb_compose_state)
|
||||||
{
|
{
|
||||||
xkb_compose_status status;
|
xkb_compose_feed_result result = xkb_compose_state_feed(
|
||||||
status = xkb_compose_state_get_status(
|
device->m_xkb_compose_state, sym);
|
||||||
device->m_xkb_compose_state);
|
|
||||||
|
|
||||||
if (status == XKB_COMPOSE_COMPOSING ||
|
if (result == XKB_COMPOSE_FEED_ACCEPTED)
|
||||||
status == XKB_COMPOSE_CANCELLED)
|
|
||||||
{
|
{
|
||||||
ignore = true;
|
xkb_compose_status status = xkb_compose_state_get_status(
|
||||||
}
|
|
||||||
|
|
||||||
if (status == XKB_COMPOSE_COMPOSED)
|
|
||||||
{
|
|
||||||
sym = xkb_compose_state_get_one_sym(
|
|
||||||
device->m_xkb_compose_state);
|
device->m_xkb_compose_state);
|
||||||
|
switch (status)
|
||||||
|
{
|
||||||
|
case XKB_COMPOSE_COMPOSING:
|
||||||
|
case XKB_COMPOSE_CANCELLED:
|
||||||
|
ignore = true;
|
||||||
|
break;
|
||||||
|
case XKB_COMPOSE_COMPOSED:
|
||||||
|
key_sym = xkb_compose_state_get_one_sym(
|
||||||
|
device->m_xkb_compose_state);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ignore)
|
||||||
|
{
|
||||||
|
key_char = xkb_keysym_to_utf32(key_sym);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ignore == true)
|
|
||||||
return;
|
|
||||||
|
|
||||||
SEvent irrevent;
|
SEvent irrevent;
|
||||||
irrevent.EventType = irr::EET_KEY_INPUT_EVENT;
|
irrevent.EventType = irr::EET_KEY_INPUT_EVENT;
|
||||||
irrevent.KeyInput.PressedDown = (state == WL_KEYBOARD_KEY_STATE_PRESSED);
|
|
||||||
irrevent.KeyInput.Char = xkb_keysym_to_utf32(sym);
|
|
||||||
irrevent.KeyInput.Control = (device->m_xkb_modifiers &
|
irrevent.KeyInput.Control = (device->m_xkb_modifiers &
|
||||||
MOD_CONTROL_MASK) != 0;
|
MOD_CONTROL_MASK) != 0;
|
||||||
irrevent.KeyInput.Shift = (device->m_xkb_modifiers &
|
irrevent.KeyInput.Shift = (device->m_xkb_modifiers &
|
||||||
MOD_SHIFT_MASK) != 0;
|
MOD_SHIFT_MASK) != 0;
|
||||||
irrevent.KeyInput.Key = device->m_key_map[sym];
|
irrevent.KeyInput.PressedDown = (state == WL_KEYBOARD_KEY_STATE_PRESSED);
|
||||||
|
irrevent.KeyInput.Char = key_char;
|
||||||
|
irrevent.KeyInput.Key = device->m_key_map[key];
|
||||||
|
|
||||||
|
if (irrevent.KeyInput.Key == 0 && key > 0)
|
||||||
|
{
|
||||||
|
irrevent.KeyInput.Key = (EKEY_CODE)(KEY_KEY_CODES_COUNT + key);
|
||||||
|
}
|
||||||
|
|
||||||
device->signalEvent(irrevent);
|
device->signalEvent(irrevent);
|
||||||
}
|
}
|
||||||
@ -1021,195 +1031,133 @@ void CIrrDeviceWayland::clearSystemMessages()
|
|||||||
|
|
||||||
void CIrrDeviceWayland::createKeyMap()
|
void CIrrDeviceWayland::createKeyMap()
|
||||||
{
|
{
|
||||||
m_key_map[XKB_KEY_NoSymbol] = KEY_UNKNOWN;
|
m_key_map[0] = KEY_UNKNOWN; //KEY_RESERVED
|
||||||
m_key_map[XKB_KEY_BackSpace] = KEY_BACK;
|
m_key_map[1] = KEY_ESCAPE; //KEY_ESC
|
||||||
m_key_map[XKB_KEY_Tab] = KEY_TAB;
|
m_key_map[2] = KEY_KEY_1; //KEY_1
|
||||||
m_key_map[XKB_KEY_ISO_Left_Tab] = KEY_TAB;
|
m_key_map[3] = KEY_KEY_2; //KEY_2
|
||||||
// m_key_map[XK_Linefeed] = 0; // ???
|
m_key_map[4] = KEY_KEY_3; //KEY_3
|
||||||
m_key_map[XKB_KEY_Clear] = KEY_CLEAR;
|
m_key_map[5] = KEY_KEY_4; //KEY_4
|
||||||
m_key_map[XKB_KEY_Return] = KEY_RETURN;
|
m_key_map[6] = KEY_KEY_5; //KEY_5
|
||||||
m_key_map[XKB_KEY_Pause] = KEY_PAUSE;
|
m_key_map[7] = KEY_KEY_6; //KEY_6
|
||||||
m_key_map[XKB_KEY_Scroll_Lock] = KEY_SCROLL;
|
m_key_map[8] = KEY_KEY_7; //KEY_7
|
||||||
// m_key_map[XK_Sys_Req] = 0; // ???
|
m_key_map[9] = KEY_KEY_8; //KEY_8
|
||||||
m_key_map[XKB_KEY_Escape] = KEY_ESCAPE;
|
m_key_map[10] = KEY_KEY_9; //KEY_9
|
||||||
m_key_map[XKB_KEY_Insert] = KEY_INSERT;
|
m_key_map[11] = KEY_KEY_0; //KEY_0
|
||||||
m_key_map[XKB_KEY_Delete] = KEY_DELETE;
|
m_key_map[12] = KEY_MINUS; //KEY_MINUS
|
||||||
m_key_map[XKB_KEY_Home] = KEY_HOME;
|
m_key_map[13] = KEY_PLUS; //KEY_EQUAL
|
||||||
m_key_map[XKB_KEY_Left] = KEY_LEFT;
|
m_key_map[14] = KEY_BACK; //KEY_BACKSPACE
|
||||||
m_key_map[XKB_KEY_Up] = KEY_UP;
|
m_key_map[15] = KEY_TAB; //KEY_TAB
|
||||||
m_key_map[XKB_KEY_Right] = KEY_RIGHT;
|
m_key_map[16] = KEY_KEY_Q; //KEY_Q
|
||||||
m_key_map[XKB_KEY_Down] = KEY_DOWN;
|
m_key_map[17] = KEY_KEY_W; //KEY_W
|
||||||
m_key_map[XKB_KEY_Prior] = KEY_PRIOR;
|
m_key_map[18] = KEY_KEY_E; //KEY_E
|
||||||
m_key_map[XKB_KEY_Page_Up] = KEY_PRIOR;
|
m_key_map[19] = KEY_KEY_R; //KEY_R
|
||||||
m_key_map[XKB_KEY_Next] = KEY_NEXT;
|
m_key_map[20] = KEY_KEY_T; //KEY_T
|
||||||
m_key_map[XKB_KEY_Page_Down] = KEY_NEXT;
|
m_key_map[21] = KEY_KEY_Y; //KEY_Y
|
||||||
m_key_map[XKB_KEY_End] = KEY_END;
|
m_key_map[22] = KEY_KEY_U; //KEY_U
|
||||||
m_key_map[XKB_KEY_Begin] = KEY_HOME;
|
m_key_map[23] = KEY_KEY_I; //KEY_I
|
||||||
m_key_map[XKB_KEY_Num_Lock] = KEY_NUMLOCK;
|
m_key_map[25] = KEY_KEY_P; //KEY_P
|
||||||
m_key_map[XKB_KEY_space] = KEY_SPACE;
|
m_key_map[24] = KEY_KEY_O; //KEY_O
|
||||||
m_key_map[XKB_KEY_KP_Tab] = KEY_TAB;
|
m_key_map[26] = KEY_OEM_4; //KEY_LEFTBRACE
|
||||||
m_key_map[XKB_KEY_KP_Enter] = KEY_RETURN;
|
m_key_map[27] = KEY_OEM_6; //KEY_RIGHTBRACE
|
||||||
m_key_map[XKB_KEY_KP_F1] = KEY_F1;
|
m_key_map[28] = KEY_RETURN; //KEY_ENTER
|
||||||
m_key_map[XKB_KEY_KP_F2] = KEY_F2;
|
m_key_map[29] = KEY_LCONTROL; //KEY_LEFTCTRL
|
||||||
m_key_map[XKB_KEY_KP_F3] = KEY_F3;
|
m_key_map[30] = KEY_KEY_A; //KEY_A
|
||||||
m_key_map[XKB_KEY_KP_F4] = KEY_F4;
|
m_key_map[31] = KEY_KEY_S; // KEY_S
|
||||||
m_key_map[XKB_KEY_KP_Home] = KEY_HOME;
|
m_key_map[32] = KEY_KEY_D; //KEY_D
|
||||||
m_key_map[XKB_KEY_KP_Left] = KEY_LEFT;
|
m_key_map[33] = KEY_KEY_F; //KEY_F
|
||||||
m_key_map[XKB_KEY_KP_Up] = KEY_UP;
|
m_key_map[34] = KEY_KEY_G; //KEY_G
|
||||||
m_key_map[XKB_KEY_KP_Right] = KEY_RIGHT;
|
m_key_map[35] = KEY_KEY_H; //KEY_H
|
||||||
m_key_map[XKB_KEY_KP_Down] = KEY_DOWN;
|
m_key_map[36] = KEY_KEY_J; //KEY_J
|
||||||
m_key_map[XKB_KEY_Print] = KEY_PRINT;
|
m_key_map[37] = KEY_KEY_K; //KEY_K
|
||||||
m_key_map[XKB_KEY_KP_Prior] = KEY_PRIOR;
|
m_key_map[38] = KEY_KEY_L; //KEY_L
|
||||||
m_key_map[XKB_KEY_KP_Page_Up] = KEY_PRIOR;
|
m_key_map[39] = KEY_OEM_1; //KEY_SEMICOLON
|
||||||
m_key_map[XKB_KEY_KP_Next] = KEY_NEXT;
|
m_key_map[40] = KEY_OEM_7; //KEY_APOSTROPHE
|
||||||
m_key_map[XKB_KEY_KP_Page_Down] = KEY_NEXT;
|
m_key_map[41] = KEY_OEM_3; //KEY_GRAVE
|
||||||
m_key_map[XKB_KEY_KP_End] = KEY_END;
|
m_key_map[42] = KEY_LSHIFT; //KEY_LEFTSHIFT
|
||||||
m_key_map[XKB_KEY_KP_Begin] = KEY_HOME;
|
m_key_map[43] = KEY_OEM_5; //KEY_BACKSLASH
|
||||||
m_key_map[XKB_KEY_KP_Insert] = KEY_INSERT;
|
m_key_map[44] = KEY_KEY_Z; //KEY_Z
|
||||||
m_key_map[XKB_KEY_KP_Delete] = KEY_DELETE;
|
m_key_map[45] = KEY_KEY_X; //KEY_X
|
||||||
// m_key_map[XK_KP_Equal] = 0; // ???
|
m_key_map[46] = KEY_KEY_C; //KEY_C
|
||||||
m_key_map[XKB_KEY_KP_Multiply] = KEY_MULTIPLY;
|
m_key_map[47] = KEY_KEY_V; //KEY_V
|
||||||
m_key_map[XKB_KEY_KP_Add] = KEY_ADD;
|
m_key_map[48] = KEY_KEY_B; //KEY_B
|
||||||
m_key_map[XKB_KEY_KP_Separator] = KEY_SEPARATOR;
|
m_key_map[49] = KEY_KEY_N; //KEY_N
|
||||||
m_key_map[XKB_KEY_KP_Subtract] = KEY_SUBTRACT;
|
m_key_map[50] = KEY_KEY_M; //KEY_M
|
||||||
m_key_map[XKB_KEY_KP_Decimal] = KEY_DECIMAL;
|
m_key_map[51] = KEY_COMMA; //KEY_COMMA
|
||||||
m_key_map[XKB_KEY_KP_Divide] = KEY_DIVIDE;
|
m_key_map[52] = KEY_PERIOD; //KEY_DOT
|
||||||
m_key_map[XKB_KEY_KP_0] = KEY_NUMPAD0;
|
m_key_map[53] = KEY_OEM_2; // KEY_SLASH
|
||||||
m_key_map[XKB_KEY_KP_1] = KEY_NUMPAD1;
|
m_key_map[54] = KEY_RSHIFT; //KEY_RIGHTSHIFT
|
||||||
m_key_map[XKB_KEY_KP_2] = KEY_NUMPAD2;
|
m_key_map[55] = KEY_MULTIPLY; //KEY_KPASTERISK
|
||||||
m_key_map[XKB_KEY_KP_3] = KEY_NUMPAD3;
|
m_key_map[56] = KEY_LMENU; //KEY_LEFTALT
|
||||||
m_key_map[XKB_KEY_KP_4] = KEY_NUMPAD4;
|
m_key_map[57] = KEY_SPACE; //KEY_SPACE
|
||||||
m_key_map[XKB_KEY_KP_5] = KEY_NUMPAD5;
|
m_key_map[58] = KEY_CAPITAL; //KEY_CAPSLOCK
|
||||||
m_key_map[XKB_KEY_KP_6] = KEY_NUMPAD6;
|
m_key_map[59] = KEY_F1; //KEY_F1
|
||||||
m_key_map[XKB_KEY_KP_7] = KEY_NUMPAD7;
|
m_key_map[60] = KEY_F2; //KEY_F2
|
||||||
m_key_map[XKB_KEY_KP_8] = KEY_NUMPAD8;
|
m_key_map[61] = KEY_F3; //KEY_F3
|
||||||
m_key_map[XKB_KEY_KP_9] = KEY_NUMPAD9;
|
m_key_map[62] = KEY_F4; //KEY_F4
|
||||||
m_key_map[XKB_KEY_F1] = KEY_F1;
|
m_key_map[63] = KEY_F5; //KEY_F5
|
||||||
m_key_map[XKB_KEY_F2] = KEY_F2;
|
m_key_map[64] = KEY_F6; //KEY_F6
|
||||||
m_key_map[XKB_KEY_F3] = KEY_F3;
|
m_key_map[65] = KEY_F7; //KEY_F7
|
||||||
m_key_map[XKB_KEY_F4] = KEY_F4;
|
m_key_map[66] = KEY_F8; //KEY_F8
|
||||||
m_key_map[XKB_KEY_F5] = KEY_F5;
|
m_key_map[67] = KEY_F9; //KEY_F9
|
||||||
m_key_map[XKB_KEY_F6] = KEY_F6;
|
m_key_map[68] = KEY_F10; //KEY_F10
|
||||||
m_key_map[XKB_KEY_F7] = KEY_F7;
|
m_key_map[69] = KEY_NUMLOCK; //KEY_NUMLOCK
|
||||||
m_key_map[XKB_KEY_F8] = KEY_F8;
|
m_key_map[70] = KEY_SCROLL; //KEY_SCROLLLOCK
|
||||||
m_key_map[XKB_KEY_F9] = KEY_F9;
|
m_key_map[71] = KEY_NUMPAD7; //KEY_KP7
|
||||||
m_key_map[XKB_KEY_F10] = KEY_F10;
|
m_key_map[72] = KEY_NUMPAD8; //KEY_KP8
|
||||||
m_key_map[XKB_KEY_F11] = KEY_F11;
|
m_key_map[73] = KEY_NUMPAD9; //KEY_KP9
|
||||||
m_key_map[XKB_KEY_F12] = KEY_F12;
|
m_key_map[74] = KEY_SUBTRACT; //KEY_KPMINUS
|
||||||
m_key_map[XKB_KEY_Shift_L] = KEY_LSHIFT;
|
m_key_map[75] = KEY_NUMPAD4; //KEY_KP4
|
||||||
m_key_map[XKB_KEY_Shift_R] = KEY_RSHIFT;
|
m_key_map[76] = KEY_NUMPAD5; //KEY_KP5
|
||||||
m_key_map[XKB_KEY_Control_L] = KEY_LCONTROL;
|
m_key_map[77] = KEY_NUMPAD6; //KEY_KP6
|
||||||
m_key_map[XKB_KEY_Control_R] = KEY_RCONTROL;
|
m_key_map[78] = KEY_ADD; //KEY_KPPLUS
|
||||||
m_key_map[XKB_KEY_Caps_Lock] = KEY_CAPITAL;
|
m_key_map[79] = KEY_NUMPAD1; //KEY_KP1
|
||||||
m_key_map[XKB_KEY_Shift_Lock] = KEY_CAPITAL;
|
m_key_map[80] = KEY_NUMPAD2; //KEY_KP2
|
||||||
m_key_map[XKB_KEY_Meta_L] = KEY_LWIN;
|
m_key_map[81] = KEY_NUMPAD3; //KEY_KP3
|
||||||
m_key_map[XKB_KEY_Meta_R] = KEY_RWIN;
|
m_key_map[82] = KEY_NUMPAD0; //KEY_KP0
|
||||||
m_key_map[XKB_KEY_Alt_L] = KEY_LMENU;
|
m_key_map[83] = KEY_SEPARATOR; //KEY_KPDOT
|
||||||
m_key_map[XKB_KEY_Alt_R] = KEY_RMENU;
|
m_key_map[85] = KEY_UNKNOWN; //KEY_ZENKAKUHANKAKU
|
||||||
m_key_map[XKB_KEY_ISO_Level3_Shift] = KEY_RMENU;
|
m_key_map[86] = KEY_OEM_102; //KEY_102ND
|
||||||
m_key_map[XKB_KEY_Menu] = KEY_MENU;
|
m_key_map[87] = KEY_F11; //KEY_F11
|
||||||
m_key_map[XKB_KEY_space] = KEY_SPACE;
|
m_key_map[88] = KEY_F12; //KEY_F12
|
||||||
// m_key_map[XKB_key_ex] = 0; //?
|
m_key_map[89] = KEY_UNKNOWN; //KEY_RO
|
||||||
// m_key_map[XK_quotedbl] = 0; //?
|
m_key_map[90] = KEY_UNKNOWN; //KEY_KATAKANA
|
||||||
// m_key_map[XK_section] = 0; //?
|
m_key_map[91] = KEY_UNKNOWN; //KEY_HIRAGANA
|
||||||
m_key_map[XKB_KEY_numbersign] = KEY_OEM_2;
|
m_key_map[92] = KEY_UNKNOWN; //KEY_HENKAN
|
||||||
// m_key_map[XK_dollar] = 0; //?
|
m_key_map[93] = KEY_UNKNOWN; //KEY_KATAKANAHIRAGANA
|
||||||
// m_key_map[XK_percent] = 0; //?
|
m_key_map[94] = KEY_UNKNOWN; //KEY_MUHENKAN
|
||||||
// m_key_map[XK_ampersand] = 0; //?
|
m_key_map[95] = KEY_SEPARATOR; //KEY_KPJPCOMMA
|
||||||
m_key_map[XKB_KEY_apostrophe] = KEY_OEM_7;
|
m_key_map[96] = KEY_RETURN; //KEY_KPENTER
|
||||||
// m_key_map[XK_parenleft] = 0; //?
|
m_key_map[97] = KEY_RCONTROL; //KEY_RIGHTCTRL
|
||||||
// m_key_map[XK_parenright] = 0; //?
|
m_key_map[98] = KEY_DIVIDE; //KEY_KPSLASH
|
||||||
// m_key_map[XK_asterisk] = 0; //?
|
m_key_map[99] = KEY_UNKNOWN; //KEY_SYSRQ
|
||||||
m_key_map[XKB_KEY_plus] = KEY_PLUS; //?
|
m_key_map[100] = KEY_RMENU; //KEY_RIGHTALT
|
||||||
m_key_map[XKB_KEY_comma] = KEY_COMMA; //?
|
m_key_map[101] = KEY_UNKNOWN; //KEY_LINEFEED
|
||||||
m_key_map[XKB_KEY_minus] = KEY_MINUS; //?
|
m_key_map[102] = KEY_HOME; //KEY_HOME
|
||||||
m_key_map[XKB_KEY_period] = KEY_PERIOD; //?
|
m_key_map[103] = KEY_UP; //KEY_UP
|
||||||
m_key_map[XKB_KEY_slash] = KEY_OEM_2; //?
|
m_key_map[104] = KEY_PRIOR; //KEY_PAGEUP
|
||||||
m_key_map[XKB_KEY_0] = KEY_KEY_0;
|
m_key_map[105] = KEY_LEFT; //KEY_LEFT
|
||||||
m_key_map[XKB_KEY_1] = KEY_KEY_1;
|
m_key_map[106] = KEY_RIGHT; //KEY_RIGHT
|
||||||
m_key_map[XKB_KEY_2] = KEY_KEY_2;
|
m_key_map[107] = KEY_END; //KEY_END
|
||||||
m_key_map[XKB_KEY_3] = KEY_KEY_3;
|
m_key_map[108] = KEY_DOWN; //KEY_DOWN
|
||||||
m_key_map[XKB_KEY_4] = KEY_KEY_4;
|
m_key_map[109] = KEY_NEXT; //KEY_PAGEDOWN
|
||||||
m_key_map[XKB_KEY_5] = KEY_KEY_5;
|
m_key_map[110] = KEY_INSERT; //KEY_INSERT
|
||||||
m_key_map[XKB_KEY_6] = KEY_KEY_6;
|
m_key_map[111] = KEY_DELETE; //KEY_DELETE
|
||||||
m_key_map[XKB_KEY_7] = KEY_KEY_7;
|
m_key_map[112] = KEY_UNKNOWN; //KEY_MACRO
|
||||||
m_key_map[XKB_KEY_8] = KEY_KEY_8;
|
m_key_map[113] = KEY_VOLUME_MUTE; //KEY_MUTE
|
||||||
m_key_map[XKB_KEY_9] = KEY_KEY_9;
|
m_key_map[114] = KEY_VOLUME_DOWN; //KEY_VOLUMEDOWN
|
||||||
// m_key_map[XK_colon] = 0; //?
|
m_key_map[115] = KEY_VOLUME_UP; //KEY_VOLUMEUP
|
||||||
m_key_map[XKB_KEY_semicolon] = KEY_OEM_1;
|
m_key_map[116] = KEY_UNKNOWN; //KEY_POWER
|
||||||
m_key_map[XKB_KEY_less] = KEY_OEM_102;
|
m_key_map[117] = KEY_RETURN; //KEY_KPEQUAL
|
||||||
m_key_map[XKB_KEY_equal] = KEY_PLUS;
|
m_key_map[118] = KEY_PLUS; //KEY_KPPLUSMINUS
|
||||||
// m_key_map[XK_greater] = 0; //?
|
m_key_map[119] = KEY_PAUSE; //KEY_PAUSE
|
||||||
// m_key_map[XK_question] = 0; //?
|
m_key_map[120] = KEY_UNKNOWN; //KEY_SCALE
|
||||||
m_key_map[XKB_KEY_at] = KEY_KEY_2; //?
|
m_key_map[121] = KEY_COMMA; //KEY_KPCOMMA
|
||||||
// m_key_map[XK_mu] = 0; //?
|
m_key_map[122] = KEY_UNKNOWN; //KEY_HANGEUL
|
||||||
// m_key_map[XK_EuroSign] = 0; //?
|
m_key_map[123] = KEY_UNKNOWN; //KEY_HANJA
|
||||||
m_key_map[XKB_KEY_A] = KEY_KEY_A;
|
m_key_map[124] = KEY_UNKNOWN; //KEY_YEN
|
||||||
m_key_map[XKB_KEY_B] = KEY_KEY_B;
|
m_key_map[125] = KEY_LWIN; //KEY_LEFTMETA
|
||||||
m_key_map[XKB_KEY_C] = KEY_KEY_C;
|
m_key_map[126] = KEY_RWIN; //KEY_RIGHTMETA
|
||||||
m_key_map[XKB_KEY_D] = KEY_KEY_D;
|
m_key_map[127] = KEY_MENU; //KEY_COMPOSE
|
||||||
m_key_map[XKB_KEY_E] = KEY_KEY_E;
|
|
||||||
m_key_map[XKB_KEY_F] = KEY_KEY_F;
|
|
||||||
m_key_map[XKB_KEY_G] = KEY_KEY_G;
|
|
||||||
m_key_map[XKB_KEY_H] = KEY_KEY_H;
|
|
||||||
m_key_map[XKB_KEY_I] = KEY_KEY_I;
|
|
||||||
m_key_map[XKB_KEY_J] = KEY_KEY_J;
|
|
||||||
m_key_map[XKB_KEY_K] = KEY_KEY_K;
|
|
||||||
m_key_map[XKB_KEY_L] = KEY_KEY_L;
|
|
||||||
m_key_map[XKB_KEY_M] = KEY_KEY_M;
|
|
||||||
m_key_map[XKB_KEY_N] = KEY_KEY_N;
|
|
||||||
m_key_map[XKB_KEY_O] = KEY_KEY_O;
|
|
||||||
m_key_map[XKB_KEY_P] = KEY_KEY_P;
|
|
||||||
m_key_map[XKB_KEY_Q] = KEY_KEY_Q;
|
|
||||||
m_key_map[XKB_KEY_R] = KEY_KEY_R;
|
|
||||||
m_key_map[XKB_KEY_S] = KEY_KEY_S;
|
|
||||||
m_key_map[XKB_KEY_T] = KEY_KEY_T;
|
|
||||||
m_key_map[XKB_KEY_U] = KEY_KEY_U;
|
|
||||||
m_key_map[XKB_KEY_V] = KEY_KEY_V;
|
|
||||||
m_key_map[XKB_KEY_W] = KEY_KEY_W;
|
|
||||||
m_key_map[XKB_KEY_X] = KEY_KEY_X;
|
|
||||||
m_key_map[XKB_KEY_Y] = KEY_KEY_Y;
|
|
||||||
m_key_map[XKB_KEY_Z] = KEY_KEY_Z;
|
|
||||||
m_key_map[XKB_KEY_bracketleft] = KEY_OEM_4;
|
|
||||||
m_key_map[XKB_KEY_backslash] = KEY_OEM_5;
|
|
||||||
m_key_map[XKB_KEY_bracketright] = KEY_OEM_6;
|
|
||||||
m_key_map[XKB_KEY_asciicircum] = KEY_OEM_5;
|
|
||||||
// m_key_map[XK_degree] = 0; //?
|
|
||||||
m_key_map[XKB_KEY_underscore] = KEY_MINUS; //?
|
|
||||||
m_key_map[XKB_KEY_grave] = KEY_OEM_3;
|
|
||||||
m_key_map[XKB_KEY_acute] = KEY_OEM_6;
|
|
||||||
m_key_map[XKB_KEY_a] = KEY_KEY_A;
|
|
||||||
m_key_map[XKB_KEY_b] = KEY_KEY_B;
|
|
||||||
m_key_map[XKB_KEY_c] = KEY_KEY_C;
|
|
||||||
m_key_map[XKB_KEY_d] = KEY_KEY_D;
|
|
||||||
m_key_map[XKB_KEY_e] = KEY_KEY_E;
|
|
||||||
m_key_map[XKB_KEY_f] = KEY_KEY_F;
|
|
||||||
m_key_map[XKB_KEY_g] = KEY_KEY_G;
|
|
||||||
m_key_map[XKB_KEY_h] = KEY_KEY_H;
|
|
||||||
m_key_map[XKB_KEY_i] = KEY_KEY_I;
|
|
||||||
m_key_map[XKB_KEY_j] = KEY_KEY_J;
|
|
||||||
m_key_map[XKB_KEY_k] = KEY_KEY_K;
|
|
||||||
m_key_map[XKB_KEY_l] = KEY_KEY_L;
|
|
||||||
m_key_map[XKB_KEY_m] = KEY_KEY_M;
|
|
||||||
m_key_map[XKB_KEY_n] = KEY_KEY_N;
|
|
||||||
m_key_map[XKB_KEY_o] = KEY_KEY_O;
|
|
||||||
m_key_map[XKB_KEY_p] = KEY_KEY_P;
|
|
||||||
m_key_map[XKB_KEY_q] = KEY_KEY_Q;
|
|
||||||
m_key_map[XKB_KEY_r] = KEY_KEY_R;
|
|
||||||
m_key_map[XKB_KEY_s] = KEY_KEY_S;
|
|
||||||
m_key_map[XKB_KEY_t] = KEY_KEY_T;
|
|
||||||
m_key_map[XKB_KEY_u] = KEY_KEY_U;
|
|
||||||
m_key_map[XKB_KEY_v] = KEY_KEY_V;
|
|
||||||
m_key_map[XKB_KEY_w] = KEY_KEY_W;
|
|
||||||
m_key_map[XKB_KEY_x] = KEY_KEY_X;
|
|
||||||
m_key_map[XKB_KEY_y] = KEY_KEY_Y;
|
|
||||||
m_key_map[XKB_KEY_z] = KEY_KEY_Z;
|
|
||||||
m_key_map[XKB_KEY_ssharp] = KEY_OEM_4;
|
|
||||||
m_key_map[XKB_KEY_adiaeresis] = KEY_OEM_7;
|
|
||||||
m_key_map[XKB_KEY_odiaeresis] = KEY_OEM_3;
|
|
||||||
m_key_map[XKB_KEY_udiaeresis] = KEY_OEM_1;
|
|
||||||
m_key_map[XKB_KEY_Super_L] = KEY_LWIN;
|
|
||||||
m_key_map[XKB_KEY_Super_R] = KEY_RWIN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The joystick code is mostly copied from CIrrDeviceLinux.
|
// The joystick code is mostly copied from CIrrDeviceLinux.
|
||||||
|
Loading…
Reference in New Issue
Block a user