diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c index b063491ad5b..131c5f5442f 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -1212,13 +1212,12 @@ BOOL X11DRV_KeymapNotify( HWND hwnd, XEvent *event ) BOOL changed = FALSE; struct { WORD vkey; - BOOL pressed; - } modifiers[6]; /* VK_LSHIFT through VK_RMENU are contiguous */ - BOOL lwin_pressed = FALSE, rwin_pressed = FALSE; + WORD pressed; + } keys[256]; if (!get_async_key_state( keystate )) return FALSE; - memset(modifiers, 0, sizeof(modifiers)); + memset(keys, 0, sizeof(keys)); EnterCriticalSection( &kbd_section ); @@ -1229,59 +1228,27 @@ BOOL X11DRV_KeymapNotify( HWND hwnd, XEvent *event ) { for (j = 0; j < 8; j++) { - int m; - vkey = keyc2vkey[(i * 8) + j]; - switch(vkey & 0xff) - { - case VK_LMENU: - case VK_RMENU: - case VK_LCONTROL: - case VK_RCONTROL: - case VK_LSHIFT: - case VK_RSHIFT: - m = (vkey & 0xff) - VK_LSHIFT; - /* Take the vkey from the first keycode we encounter for this modifier */ - if (!modifiers[m].vkey) modifiers[m].vkey = vkey; - if (event->xkeymap.key_vector[i] & (1<xkeymap.key_vector[i] & (1<xkeymap.key_vector[i] & (1<xkeymap.key_vector[i] & (1<