=== Press event === trace:key:X11DRV_KeyEvent type 2, window 5e00005, state 0x0001, keycode 0x0019 trace:key:X11DRV_KeyEvent state = 1 nbyte = 1, status 0x0 trace:key:X11DRV_KeyEvent KeyPress : keysym=57 (W), # of chars=1 / 0x57 / 'W' trace:key:EVENT_event_to_vkey e->keycode = 19 trace:key:X11DRV_KeyEvent keycode 0x19 converted to vkey 0x57 trace:keyboard:X11DRV_KeyEvent Adjusting Caps Lock state. trace:keyboard:KEYBOARD_GenerateMsg ON + KeyRelease => generating DOWN and UP messages. trace:key:X11DRV_send_keyboard_input wParam=0014, lParam=003a0001, InputKeyState=c0 trace:key:X11DRV_send_keyboard_input wParam=0014, lParam=c03a0001, InputKeyState=40 trace:key:X11DRV_KeyEvent bScan = 0x11. trace:key:X11DRV_send_keyboard_input wParam=0057, lParam=00110001, InputKeyState=c1 === Release event === trace:key:X11DRV_KeyEvent type 3, window 5e00005, state 0x0002, keycode 0x0019 trace:key:X11DRV_KeyEvent state = 2 nbyte = 1, status 0x0 trace:key:X11DRV_KeyEvent KeyRelease : keysym=57 (W), # of chars=1 / 0x57 / 'W' trace:key:EVENT_event_to_vkey e->keycode = 19 trace:key:X11DRV_KeyEvent keycode 0x19 converted to vkey 0x57 trace:keyboard:X11DRV_KeyEvent Adjusting Caps Lock state. trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN and UP messages. trace:key:X11DRV_send_keyboard_input wParam=0014, lParam=003a0001, InputKeyState=c1 trace:key:X11DRV_send_keyboard_input wParam=0014, lParam=c03a0001, InputKeyState=41 trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of toggle key. key_state_table[0x14] = 0x41 trace:key:X11DRV_KeyEvent bScan = 0x11. trace:key:X11DRV_send_keyboard_input wParam=0057, lParam=c0110001, InputKeyState=41