Everything must come to an end, even the desktop window. Fixes bug 805.
Modified: trunk/reactos/subsys/win32k/ntuser/window.c

Modified: trunk/reactos/subsys/win32k/ntuser/window.c
--- trunk/reactos/subsys/win32k/ntuser/window.c	2005-10-17 21:48:12 UTC (rev 18533)
+++ trunk/reactos/subsys/win32k/ntuser/window.c	2005-10-17 21:57:02 UTC (rev 18534)
@@ -2035,7 +2035,7 @@
    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;
@@ -2103,7 +2103,8 @@
          HWND *ChildHandle;
          PWINDOW_OBJECT Child, Desktop;
 
-         Desktop = UserGetWindowObject(IntGetDesktopWindow());
+         Desktop = IntIsDesktopWindow(Window) ? Window :
+                   UserGetWindowObject(IntGetDesktopWindow());
          Children = IntWinListChildren(Desktop);
 
          if (Children)