http://bugs.winehq.org/show_bug.cgi?id=20065
--- Comment #2 from Jörg Höhle hoehle@users.sourceforge.net 2009-09-17 07:55:55 --- Created an attachment (id=23628) --> (http://bugs.winehq.org/attachment.cgi?id=23628) trace +key,+keyboard (+more) when typing keys c, shift left, left
The attached traces shows how on the Mac, XmbLookupString returns a string (+ a keysym). On Linux it does not. This is somewhat odd, I didn't notice it when using xev. Maybe this depends on the XIC input context?
keyboard:X11DRV_ToUnicodeEx Found keycode 78 (0x4E) key:X11DRV_ToUnicodeEx type 2, window e00005, state 0x0001, keycode 0x004e keyboard:X11DRV_ToUnicodeEx XmbLookupString needs 1 byte(s) key:X11DRV_ToUnicodeEx nbyte = 1, status 0x4 key:X11DRV_ToUnicodeEx KeyPress : keysym=2B (plus), # of chars=1 / "+"
winex11.drv/keyboard.c:X11DRV_ToUnicodeEx has a comment on th5s: /* We have a special case to handle : Shift + arrow, shift + home, ... X returns a char for it, but Windows doesn't. Let's eat it. */ && (keysym>=XK_KP_0) && (keysym<=XK_KP_9)) B4t that code only handles KP_0 to KP_9, not the arrow keys.