Removed WIN_GetDesktop().

diff --git a/dlls/x11drv/winpos.c b/dlls/x11drv/winpos.c
index eb6bde8..3470ea4 100644
--- a/dlls/x11drv/winpos.c
+++ b/dlls/x11drv/winpos.c
@@ -1284,22 +1284,20 @@
 {
     HWND      hwndInsertAfter = HWND_TOP;
     WND      *pWndCheck = WIN_FindWndPtr(hWndCheck);
-    WND      *pDesktop = WIN_GetDesktop();
-    WND      *pWnd, *pWndZ = WIN_LockWndPtr(pDesktop->child);
+    WND *top = WIN_FindWndPtr( GetTopWindow(0) );
+    WND *pWnd, *pWndZ = top;
     Window      w, parent, *children = NULL;
     unsigned    total, check, pos, best;
 
     if( !__check_query_condition(&pWndZ, &pWnd) )
     {
         WIN_ReleaseWndPtr(pWndCheck);
-        WIN_ReleaseWndPtr(pDesktop->child);
-        WIN_ReleaseDesktop();
+        WIN_ReleaseWndPtr(top);
         return hwndInsertAfter;
     }
     WIN_LockWndPtr(pWndZ);
     WIN_LockWndPtr(pWnd);
-    WIN_ReleaseWndPtr(pDesktop->child);
-    WIN_ReleaseDesktop();
+    WIN_ReleaseWndPtr(top);
 
     parent = __get_common_ancestor( display, get_whole_window(pWndZ),
                                     get_whole_window(pWnd), &children, &total );
diff --git a/include/win.h b/include/win.h
index 77ead3f..02d3b40 100644
--- a/include/win.h
+++ b/include/win.h
@@ -84,8 +84,6 @@
 extern WND*   WIN_LockWndPtr(WND *wndPtr);
 extern void   WIN_ReleaseWndPtr(WND *wndPtr);
 extern void   WIN_UpdateWndPtr(WND **oldPtr,WND *newPtr);
-extern WND*   WIN_GetDesktop(void);
-extern void   WIN_ReleaseDesktop(void);
 extern void   WIN_DumpWindow( HWND hwnd );
 extern void   WIN_WalkWindows( HWND hwnd, int indent );
 extern BOOL WIN_UnlinkWindow( HWND hwnd );
diff --git a/windows/painting.c b/windows/painting.c
index cb25b4d..6f73fe1 100644
--- a/windows/painting.c
+++ b/windows/painting.c
@@ -165,7 +165,7 @@
                       wnd->hwndSelf, wnd->hrgnUpdate, hRgn, uncFlags, wnd->flags & WIN_NEEDS_NCPAINT);
 
     /* desktop window doesn't have a nonclient area */
-    if(wnd == WIN_GetDesktop()) 
+    if(wnd->hwndSelf == GetDesktopWindow())
     {
         wnd->flags &= ~WIN_NEEDS_NCPAINT;
 	if( wnd->hrgnUpdate > 1 )
@@ -174,10 +174,8 @@
 	{
 	    hrgnRet = wnd->hrgnUpdate;
 	}
-        WIN_ReleaseDesktop();
         return hrgnRet;
     }
-    WIN_ReleaseDesktop();
 
     if ((wnd->hwndSelf == GetForegroundWindow()) &&
         !(wnd->flags & WIN_NCACTIVATED) )
@@ -498,7 +496,6 @@
 static void RDW_ValidateParent(WND *wndChild)
 {
     WND *wndParent = WIN_LockWndPtr(wndChild->parent);
-    WND *wndDesktop = WIN_GetDesktop();
     HRGN hrg;
 
     if (wndChild->hrgnUpdate == 1 ) {
@@ -511,7 +508,7 @@
     } else
         hrg = wndChild->hrgnUpdate;
 
-    while ((wndParent) && (wndParent != wndDesktop) ) {
+    while ((wndParent) && (wndParent->hwndSelf != GetDesktopWindow()) ) {
         if (!(wndParent->dwStyle & WS_CLIPCHILDREN))
         {
             if (wndParent->hrgnUpdate != 0)
@@ -543,7 +540,6 @@
     }
     if (hrg != wndChild->hrgnUpdate) DeleteObject( hrg );
     WIN_ReleaseWndPtr(wndParent);
-    WIN_ReleaseDesktop();
 }
 
 /***********************************************************************
diff --git a/windows/win.c b/windows/win.c
index 704f660..e070ab8 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -216,44 +216,6 @@
 
 
 /***********************************************************************
- *           WIN_WalkWindows
- *
- * Walk the windows tree and print each window on stderr.
- */
-void WIN_WalkWindows( HWND hwnd, int indent )
-{
-    WND *ptr;
-    char className[80];
-
-    ptr = hwnd ? WIN_FindWndPtr( hwnd ) : WIN_GetDesktop();
-
-    if (!ptr)
-    {
-        WARN("Invalid window handle %04x\n", hwnd );
-        return;
-    }
-
-    if (!indent)  /* first time around */
-       DPRINTF( "%-16.16s %-8.8s %-6.6s %-17.17s %-8.8s %s\n",
-                 "hwnd", " wndPtr", "queue", "Class Name", " Style", " WndProc"
-                 " Text");
-
-    while (ptr)
-    {
-        DPRINTF( "%*s%04x%*s", indent, "", ptr->hwndSelf, 13-indent,"");
-
-        GetClassNameA( ptr->hwndSelf, className, sizeof(className) );
-        DPRINTF( "%08lx %-6.4x %-17.17s %08x %08x %.14s\n",
-                 (DWORD)ptr, ptr->hmemTaskQ, className,
-                 (UINT)ptr->dwStyle, (UINT)ptr->winproc,
-                 ptr->text ? debugstr_w(ptr->text) : "<null>");
-        
-        if (ptr->child) WIN_WalkWindows( ptr->child->hwndSelf, indent+1 );
-        WIN_UpdateWndPtr(&ptr,ptr->next);
-    }
-}
-
-/***********************************************************************
  *           WIN_UnlinkWindow
  *
  * Remove a window from the siblings linked list.
@@ -1206,12 +1168,8 @@
 
     /* Initialization */
 
+    if (hwnd == GetDesktopWindow()) return FALSE;   /* Can't destroy desktop */
     if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return FALSE;
-    if (wndPtr == pWndDesktop)
-    {
-        retvalue = FALSE; /* Can't destroy desktop */
-	goto end;
-    }
 
     /* Look whether the focus is within the tree of windows we will
      * be destroying.
@@ -1548,24 +1506,6 @@
 
 
 /**********************************************************************
- *           WIN_GetDesktop
- * returns a locked pointer
- */
-WND *WIN_GetDesktop(void)
-{
-    return WIN_LockWndPtr(pWndDesktop);
-}
-/**********************************************************************
- *           WIN_ReleaseDesktop
- * unlock the desktop pointer
- */
-void WIN_ReleaseDesktop(void)
-{
-    WIN_ReleaseWndPtr(pWndDesktop);
-}
-
-
-/**********************************************************************
  *		GetDesktopWindow (USER.286)
  */
 HWND16 WINAPI GetDesktopWindow16(void)
@@ -2433,15 +2373,8 @@
  */
 HWND WINAPI GetTopWindow( HWND hwnd )
 {
-    HWND retval = 0;
-    WND * wndPtr = (hwnd) ?
-	           WIN_FindWndPtr( hwnd ) : WIN_GetDesktop();
-
-    if (wndPtr && wndPtr->child)
-        retval = wndPtr->child->hwndSelf;
-
-    WIN_ReleaseWndPtr(wndPtr);
-    return retval;
+    if (!hwnd) hwnd = GetDesktopWindow();
+    return GetWindow( hwnd, GW_CHILD );
 }
 
 
diff --git a/windows/winpos.c b/windows/winpos.c
index 3a5eaf6..19e0a15 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -1550,14 +1550,11 @@
     if (wndPtr && !(wndPtr->dwStyle & WS_CHILD) && !(wndPtr->dwExStyle & WS_EX_MANAGED))
     {
 	/* check Z-order and bring hWnd to the top */
-	for (wndTemp = WIN_LockWndPtr(WIN_GetDesktop()->child); wndTemp; WIN_UpdateWndPtr(&wndTemp,wndTemp->next))
-        {
-	    if (wndTemp->dwStyle & WS_VISIBLE) break;
-        }
-        WIN_ReleaseDesktop();
-        WIN_ReleaseWndPtr(wndTemp);
+        HWND tmp = GetTopWindow(0);
+        while (tmp && !(GetWindowLongA( tmp, GWL_STYLE ) & WS_VISIBLE))
+            tmp = GetWindow( tmp, GW_HWNDNEXT );
 
-	if( wndTemp != wndPtr )
+        if( tmp != hWnd )
 	    SetWindowPos(hWnd, HWND_TOP, 0,0,0,0, 
 			   SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE );
         if (!IsWindow(hWnd))