From adad80f4bd4aba325549ad8747a2951e97209660 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 17 Jan 2012 16:22:43 +0100 Subject: [PATCH] user32: Always query actual key state from the server for pressed keys. --- dlls/user32/input.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/user32/input.c b/dlls/user32/input.c index 6a76cb87d79..abd382f1308 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -369,12 +369,12 @@ SHORT WINAPI DECLSPEC_HOTPATCH GetAsyncKeyState( INT key ) if ((ret = USER_Driver->pGetAsyncKeyState( key )) == -1) { - if (thread_info->key_state) - { - if (GetTickCount() - thread_info->key_state_time < 50) - return (thread_info->key_state[key] & 0x80) ? 0x8000 : 0; - } - else thread_info->key_state = HeapAlloc( GetProcessHeap(), 0, 256 ); + if (thread_info->key_state && + !(thread_info->key_state[key] & 0xc0) && + GetTickCount() - thread_info->key_state_time < 50) + return 0; + + if (!thread_info->key_state) thread_info->key_state = HeapAlloc( GetProcessHeap(), 0, 256 ); ret = 0; SERVER_START_REQ( get_key_state ) -- 2.11.4.GIT