ecore_evas_wayland: Don't use frame callbacks on windows with no shell surface
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 14 Oct 2016 21:02:45 +0000 (16:02 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 14 Oct 2016 21:07:08 +0000 (16:07 -0500)
If we set a frame callback on a window with no shell surface (ie: and unmapped
window), the frame callback will never fire.  This was preventing some
applications like rage from ever posting a frame.

src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c

index c469acd..b41e907 100644 (file)
@@ -1373,6 +1373,7 @@ _ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void
    wdata = ee->engine.data;
    surf = ecore_wl2_window_surface_get(wdata->win);
    if (!surf) return;
+   if (!ecore_wl2_window_has_shell_surface(wdata->win)) return;
 
    wdata->anim_callback = wl_surface_frame(surf);
    wl_callback_add_listener(wdata->anim_callback, &_anim_listener, ee);