* FILE: win32ss/user/ntuser/window.c
* PROGRAMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
*/
-
+//
#include <win32k.h>
DBG_DEFAULT_CHANNEL(UserWnd);
MsqRemoveWindowMessagesFromQueue(Window);
/* from now on no messages can be sent to this window anymore */
- Window->state |= WNDS_DESTROYED;
+ //Window->state |= WNDS_DESTROYED;
Window->fnid |= FNID_FREED;
/* don't remove the WINDOWSTATUS_DESTROYING bit */
{
if ((Window->style & (WS_POPUP|WS_CHILD)) != WS_CHILD)
{
- if (Window->spwndOwner)
+ if (VerifyWnd(Window->spwndOwner))
{
//ERR("DestroyWindow Owner out.\n");
UserAttachThreadInput(Window->head.pti, Window->spwndOwner->head.pti, FALSE);
// Adjust last active.
if ((pwndTemp = Window->spwndOwner))
{
- while (pwndTemp->spwndOwner)
+ while (VerifyWnd(pwndTemp->spwndOwner))
pwndTemp = pwndTemp->spwndOwner;
if (pwndTemp->spwndLastActive == Window)
return TRUE;
}
+ Window->state |= WNDS_DESTROYED;
+
/* Destroy the window storage */
co_UserFreeWindow(Window, PsGetCurrentProcessWin32Process(), PsGetCurrentThreadWin32Thread(), TRUE);