ecore-evas-wayland: Ensure pending configure is handled before rendering
authorChris Michael <cp.michael@samsung.com>
Tue, 10 Jan 2017 16:28:40 +0000 (11:28 -0500)
committerChris Michael <cp.michael@samsung.com>
Tue, 10 Jan 2017 16:28:40 +0000 (11:28 -0500)
With the change to xdg_shell v6, we need to wait for any pending
configure to be handled before we can render. This patch addresses
that issue and makes Elementary_Test work again under Weston :)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c

index 9a01e65..8aa5afd 100644 (file)
@@ -294,6 +294,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
      }
 
    if ((!nw) && (!nh)) return ECORE_CALLBACK_RENEW;
+
    nw -= fw;
    nh -= fh;
 
@@ -1427,6 +1428,8 @@ _ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas, void *event EINA_
    surf = ecore_wl2_window_surface_get(wdata->win);
    if (!surf) return;
 
+   if (wdata->win->pending.configure) return;
+
    wdata->anim_callback = wl_surface_frame(surf);
    wl_callback_add_listener(wdata->anim_callback, &_anim_listener, ee);
    ecore_evas_manual_render_set(ee, 1);
@@ -1527,6 +1530,8 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
    if (!(wdata = ee->engine.data)) return 0;
    if (!wdata->sync_done) return 0;
 
+   if (wdata->win->pending.configure) return 0;
+
    /* TODO: handle comp no sync */
 
    if (ee->in_async_render) return 0;