From e2e149784b2659e43f0459e9d659d828687d7c04 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Thu, 17 Aug 2017 10:22:54 +0200 Subject: [PATCH] wayland backend: fix xdg-shell for weston - xdg toplevel configure can be called with 0 width/height, in that case we are free to do as we like (so do nothing) - need a display roundtrip after everything is setup but before we start attaching buffers to the surface --- backend/wayland/output.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/wayland/output.c b/backend/wayland/output.c index 5dfca82e..16f9f017 100644 --- a/backend/wayland/output.c +++ b/backend/wayland/output.c @@ -183,8 +183,10 @@ static void xdg_toplevel_handle_configure(void *data, struct zxdg_toplevel_v6 *x struct wlr_wl_backend_output *output = data; assert(output && output->xdg_toplevel == xdg_toplevel); + if (width == 0 && height == 0) { + return; + } // loop over states for maximized etc? - wl_egl_window_resize(output->egl_window, width, height, 0, 0); output->wlr_output.width = width; output->wlr_output.height = height; @@ -261,6 +263,8 @@ struct wlr_output *wlr_wl_output_create(struct wlr_backend *_backend) { wlr_output->width, wlr_output->height); output->egl_surface = wlr_egl_create_surface(&backend->egl, output->egl_window); + wl_display_roundtrip(output->backend->remote_display); + // start rendering loop per callbacks by rendering first frame if (!eglMakeCurrent(output->backend->egl.display, output->egl_surface, output->egl_surface,