winex11.drv: Offset X11 coordinates with the primary monitor position.

No longer force the primary monitor to contain the X11 (0,0) coordinate.
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 39c58c9..b17efff 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -611,8 +611,8 @@
     if (!(wm_hints = XGetWMHints( display, data->whole_window ))) wm_hints = XAllocWMHints();
     wm_hints->flags |= StateHint | IconPositionHint;
     wm_hints->initial_state = iconic ? IconicState : NormalState;
-    wm_hints->icon_x = rect.left;
-    wm_hints->icon_y = rect.top;
+    wm_hints->icon_x = rect.left - virtual_screen_rect.left;
+    wm_hints->icon_y = rect.top - virtual_screen_rect.top;
     XSetWMHints( display, data->whole_window, wm_hints );
 
     if (style & WS_VISIBLE)
@@ -734,6 +734,8 @@
 
         wine_tsx11_lock();
         if (mask & (CWWidth|CWHeight)) set_size_hints( display, data, style );
+        if (mask & CWX) changes.x -= virtual_screen_rect.left;
+        if (mask & CWY) changes.y -= virtual_screen_rect.top;
         XReconfigureWMWindow( display, data->whole_window,
                               DefaultScreen(display), mask, &changes );
         wine_tsx11_unlock();
@@ -773,9 +775,11 @@
     wine_tsx11_lock();
 
     data->whole_rect = rect;
-    data->whole_window = XCreateWindow( display, root_window, rect.left, rect.top, cx, cy,
-                                        0, screen_depth, InputOutput, visual,
-                                        mask, &attr );
+    data->whole_window = XCreateWindow( display, root_window,
+                                        rect.left - virtual_screen_rect.left,
+                                        rect.top - virtual_screen_rect.top,
+                                        cx, cy, 0, screen_depth, InputOutput,
+                                        visual, mask, &attr );
 
     if (!data->whole_window)
     {