If the existing outputs are arranged to a different layout, the screen
dimension need to be updated as it depends on the actual layout.

So update the screen dimension on geometry changes as well.

Signed-off-by: Olivier Fourdan <[email protected]>
---
 hw/xwayland/xwayland-output.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
index 39893e7..47ffc2e 100644
--- a/hw/xwayland/xwayland-output.c
+++ b/hw/xwayland/xwayland-output.c
@@ -151,7 +151,9 @@ output_handle_geometry(void *data, struct wl_output 
*wl_output, int x, int y,
                        int physical_width, int physical_height, int subpixel,
                        const char *make, const char *model, int transform)
 {
-    struct xwl_output *xwl_output = data;
+    struct xwl_output *it, *xwl_output = data;
+    struct xwl_screen *xwl_screen = xwl_output->xwl_screen;
+    int width = 0, height = 0;
 
     RROutputSetPhysicalSize(xwl_output->randr_output,
                             physical_width, physical_height);
@@ -161,6 +163,11 @@ output_handle_geometry(void *data, struct wl_output 
*wl_output, int x, int y,
     xwl_output->y = y;
 
     xwl_output->rotation = wl_transform_to_xrandr(transform);
+
+    xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
+        output_get_new_size(it, &height, &width);
+    }
+    update_screen_size(xwl_output, width, height);
 }
 
 static void
-- 
2.5.0

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to