aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2017-08-17 10:22:54 +0200
committerDominique Martinet <asmadeus@codewreck.org>2017-08-17 10:36:43 +0200
commite2e149784b2659e43f0459e9d659d828687d7c04 (patch)
tree3ebea1470caa643400783346fac7af2c0a2688ea
parent3377e5e4f27fb5954ce2c14388beb08681fd1d40 (diff)
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
-rw-r--r--backend/wayland/output.c6
1 files changed, 5 insertions, 1 deletions
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,