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)
{