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
