Author: jimtabor Date: Mon Apr 7 14:02:21 2008 New Revision: 32890
URL: http://svn.reactos.org/svn/reactos?rev=32890&view=rev Log: - Remove old pump hook and use new client thread information. Tested with Qemu and installed and run more than twice FF 1.5.03.
Modified: trunk/reactos/subsystems/win32/win32k/include/win32.h trunk/reactos/subsystems/win32/win32k/main/dllmain.c trunk/reactos/subsystems/win32/win32k/ntuser/message.c
Modified: trunk/reactos/subsystems/win32/win32k/include/win32.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/win32.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/win32.h [iso-8859-1] Mon Apr 7 14:02:21 2008 @@ -11,7 +11,8 @@ struct _KBL* KeyboardLayout; struct _DESKTOP_OBJECT* Desktop; HANDLE hDesktop; - DWORD MessagePumpHookValue; + PVOID pgdiDcattr; + PVOID pgdiBrushAttr; BOOLEAN IsExiting; SINGLE_LIST_ENTRY ReferencesList; ULONG Hooks;
Modified: trunk/reactos/subsystems/win32/win32k/main/dllmain.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/mai... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/main/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/main/dllmain.c [iso-8859-1] Mon Apr 7 14:02:21 2008 @@ -266,7 +266,8 @@ co_IntDestroyCaret(Win32Thread); Win32Thread->MessageQueue = MsqCreateMessageQueue(Thread); Win32Thread->KeyboardLayout = W32kGetDefaultKeyLayout(); - Win32Thread->MessagePumpHookValue = 0; + if (Win32Thread->ThreadInfo) + Win32Thread->ThreadInfo->ClientThreadInfo.dwcPumpHook = 0; } else {
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/message.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] Mon Apr 7 14:02:21 2008 @@ -1822,19 +1822,27 @@ BOOL STDCALL IntInitMessagePumpHook() { - ((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->MessagePumpHookValue++; - return TRUE; + if (((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->ThreadInfo) + { + ((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->ThreadInfo->ClientThreadInfo.dwcPumpHook++; + return TRUE; + } + return FALSE; }
BOOL STDCALL IntUninitMessagePumpHook() { - if (((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->MessagePumpHookValue <= 0) - { - return FALSE; - } - ((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->MessagePumpHookValue--; - return TRUE; + if (((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->ThreadInfo) + { + if (((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->ThreadInfo->ClientThreadInfo.dwcPumpHook <= 0) + { + return FALSE; + } + ((PW32THREAD)PsGetCurrentThread()->Tcb.Win32Thread)->ThreadInfo->ClientThreadInfo.dwcPumpHook--; + return TRUE; + } + return FALSE; }
/* EOF */