Fixed desktop window structure initialization.

diff --git a/dlls/x11drv/window.c b/dlls/x11drv/window.c
index 4f19602..9586f1a 100644
--- a/dlls/x11drv/window.c
+++ b/dlls/x11drv/window.c
@@ -586,7 +586,7 @@
 /**********************************************************************
  *		create_desktop
  */
-static void create_desktop( Display *display, WND *wndPtr )
+static void create_desktop( Display *display, WND *wndPtr, CREATESTRUCTA *cs )
 {
     X11DRV_WND_DATA *data = wndPtr->pDriverData;
 
@@ -604,11 +604,13 @@
     wine_tsx11_unlock();
 
     data->whole_window = data->client_window = root_window;
+    data->whole_rect = data->client_rect = wndPtr->rectWindow;
 
     SetPropA( wndPtr->hwndSelf, "__wine_x11_whole_window", (HANDLE)root_window );
     SetPropA( wndPtr->hwndSelf, "__wine_x11_client_window", (HANDLE)root_window );
     SetPropA( wndPtr->hwndSelf, "__wine_x11_visual_id", (HANDLE)XVisualIDFromVisual(visual) );
 
+    SendMessageW( wndPtr->hwndSelf, WM_NCCREATE, 0, (LPARAM)cs );
     if (root_window != DefaultRootWindow(display)) X11DRV_create_desktop_thread();
 }
 
@@ -816,8 +818,7 @@
 
     if (!wndPtr->parent)
     {
-        SendMessageW( hwnd, WM_NCCREATE, 0, (LPARAM)cs );
-        create_desktop( display, wndPtr );
+        create_desktop( display, wndPtr, cs );
         WIN_ReleaseWndPtr( wndPtr );
         return TRUE;
     }