Fix 'available for more data' field in user32 user_thread_info structure.

This commit is contained in:
Sebastian Lackner
2015-03-21 05:32:24 +01:00
parent d7d95ca4b6
commit 2f3d51e7f4
5 changed files with 107 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
From bd1a61f0fe9aee47535902b65bf3fcf669574b93 Mon Sep 17 00:00:00 2001
From d24be9691751b300e10783f66f911a55709f9331 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 14 Jul 2014 05:06:40 +0200
Subject: user32: After calling LL hooks the key state cache has to be
@@ -90,23 +90,19 @@ index eac4e4d..d59e342 100644
USER_Driver->pSetCursorPos( new_x, new_y );
}
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index adf3f7d..aa43578 100644
index c389414..01a19bf 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -184,15 +184,18 @@ struct user_thread_info
DWORD GetMessagePosVal; /* Value for GetMessagePos */
ULONG_PTR GetMessageExtraInfoVal; /* Value for GetMessageExtraInfo */
UINT active_hooks; /* Bitmap of active hooks */
+ INT key_state_epoch; /* Counter to invalidate the key state */
UINT key_state_time; /* Time of last key state refresh */
BYTE *key_state; /* Cache of global key state */
@@ -190,11 +190,14 @@ struct user_thread_info
HWND top_window; /* Desktop window */
HWND msg_window; /* HWND_MESSAGE parent window */
RAWINPUT *rawinput;
+ INT key_state_epoch; /* Counter to invalidate the key state */
- ULONG pad[6]; /* Available for more data */
+ ULONG pad[5]; /* Available for more data */
- ULONG pad[5]; /* Available for more data */
+ ULONG pad[4]; /* Available for more data */
};
#include <poppack.h>
+extern INT global_key_state_epoch DECLSPEC_HIDDEN;
+

View File

@@ -1 +1,2 @@
Fixes: [29871] Invalidate key state cache globally after calling LL hooks
Depends: user32-user_thread_info