Everything must come to an end, even the desktop window. Fixes bug 805.
authorGé van Geldorp <ge@gse.nl>
Mon, 17 Oct 2005 21:57:02 +0000 (21:57 +0000)
committerGé van Geldorp <ge@gse.nl>
Mon, 17 Oct 2005 21:57:02 +0000 (21:57 +0000)
svn path=/trunk/; revision=18534

reactos/subsys/win32k/ntuser/window.c

index b99e0a8..4800816 100644 (file)
@@ -2035,7 +2035,7 @@ BOOLEAN FASTCALL co_UserDestroyWindow(PWINDOW_OBJECT Window)
    ASSERT_REFS_CO(Window); //fixme: temp hack?
 
    /* Check for owner thread and desktop window */
    ASSERT_REFS_CO(Window); //fixme: temp hack?
 
    /* Check for owner thread and desktop window */
-   if ((Window->OwnerThread != PsGetCurrentThread()) || IntIsDesktopWindow(Window))
+   if ((Window->OwnerThread != PsGetCurrentThread()))
    {
       SetLastWin32Error(ERROR_ACCESS_DENIED);
       return FALSE;
    {
       SetLastWin32Error(ERROR_ACCESS_DENIED);
       return FALSE;
@@ -2103,7 +2103,8 @@ BOOLEAN FASTCALL co_UserDestroyWindow(PWINDOW_OBJECT Window)
          HWND *ChildHandle;
          PWINDOW_OBJECT Child, Desktop;
 
          HWND *ChildHandle;
          PWINDOW_OBJECT Child, Desktop;
 
-         Desktop = UserGetWindowObject(IntGetDesktopWindow());
+         Desktop = IntIsDesktopWindow(Window) ? Window :
+                   UserGetWindowObject(IntGetDesktopWindow());
          Children = IntWinListChildren(Desktop);
 
          if (Children)
          Children = IntWinListChildren(Desktop);
 
          if (Children)