http://bugs.winehq.org/show_bug.cgi?id=8683
--- Comment #20 from Fábio Capela fabio.capela@yahoo.com 2008-01-21 12:10:37 --- (In reply to comment #17)
The only key that is returning a value that needs more than 1 byte is ß, which is exactly the one key that is not working with this newest hack. Not sure why it's not working, it's returning 0x1e9e as the unicode char, but the unicode for ß is 0xdf.
added a trace and saw that for the ß key the call to XLookupString inside X11DRV_MapVirtualKeyEx seems to be generating bad results.
When called inside X11DRV_KeyEvent and inside X11DRV_ToUnicodeEx: keysym=DF (ssharp), # of chars=2 / "\xc3\x9f"
When called inside X11DRV_MapVirtualKeyEx to map the same keycode: keysym=1001E9E, # of chars=3 / "\xe1\xba\x9e"