Author: mjmartin Date: Sun May 2 18:40:05 2010 New Revision: 47082
URL: http://svn.reactos.org/svn/reactos?rev=47082&view=rev Log: [win32k] - co_UserDestroyWindow: ThreadInfo->pDeskInfo->hShell holds the hWnd of the Shells Desktop Window. Set it to NULL if that windows is being destroyed. Fixes bug #4902.
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/window.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/window.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] Sun May 2 18:40:05 2010 @@ -2619,6 +2619,7 @@ BOOLEAN isChild; PWND Wnd; HWND hWnd; + PTHREADINFO ti;
ASSERT_REFS_CO(Window); // FIXME: temp hack?
@@ -2661,6 +2662,21 @@ Window->pti->MessageQueue->FocusWindow = NULL; if (Window->pti->MessageQueue->CaptureWindow == Window->hSelf) Window->pti->MessageQueue->CaptureWindow = NULL; + + /* + * Check if this window is the Shell's Desktop Window. If so set hShellWindow to NULL + */ + + ti = PsGetCurrentThreadWin32Thread(); + + if ((ti != NULL) & (ti->pDeskInfo != NULL)) + { + if (ti->pDeskInfo->hShellWindow == hWnd) + { + DPRINT1("Destroying the ShellWindow!\n"); + ti->pDeskInfo->hShellWindow = NULL; + } + }
IntDereferenceMessageQueue(Window->pti->MessageQueue);