http://bugs.winehq.org/show_bug.cgi?id=30814
--- Comment #22 from Raditz12 a25422@ua.pt 2013-09-03 12:31:05 CDT --- This bug is real and present.
A workaround to fix it is this simple patch:
==== diff --git a/dlls/user32/input.c b/dlls/user32/input.c index c6f036f..4fd32ef 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -601,1 +601,1 @@ SHORT WINAPI DECLSPEC_HOTPATCH GetKeyState(INT vkey) - if (!wine_server_call( req )) retval = (signed char)reply->state; + if (!wine_server_call( req )) retval = (signed char)reply->state & ~0x40; @@ -624,1 +624,3 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetKeyboardState( LPBYTE state ) - ret = !wine_server_call_err( req ); + ret = !wine_server_call_err( req ); + int i = 255; + for (; i >= 0; state[i--] &= ~0x40); ====
It works for me, to fix this issue.