diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c index fe7a9232e..f26fb5a4f 100644 --- a/hw/xwayland/xwayland-output.c +++ b/hw/xwayland/xwayland-output.c @@ -601,6 +601,7 @@ static void apply_output_change(struct xwl_output *xwl_output) { struct xwl_screen *xwl_screen = xwl_output->xwl_screen; + struct xwl_window *xwl_window; struct xwl_output *it; int mode_width, mode_height, count; int width = 0, height = 0, has_this_output = 0; @@ -658,6 +659,15 @@ apply_output_change(struct xwl_output *xwl_output) update_screen_size(xwl_screen, width, height); else RRTellChanged(xwl_screen->screen); + + /* If running rootful and fullscreen, make sure to match the new setup */ + if (xwl_screen->fullscreen) { + /* The root window may not yet be created */ + if (xwl_screen->screen->root) { + xwl_window = xwl_window_get(xwl_screen->screen->root); + xwl_window_rootful_update_fullscreen(xwl_window, xwl_output); + } + } } static void