wayland: Force a display flush when committing surfaces

We had a hack in place to flush the display from an idle enterer instead
of after a surface commit.  This led to a problem where the idle
enterer dispatch order was:

renderer for main canvas
wayland dispatch idle enterer
renderer for mouse cursor canvas

The surface commit for the mouse cursor was never dispatched, so the mouse
cursor animation would only update at the rate other events occurred.

By flushing at the appropriate times instead we ensure a proper update.

ref T5850
This commit is contained in:
Derek Foreman 2017-08-30 12:29:48 -05:00
parent e7db6eec46
commit f886a76dae
2 changed files with 6 additions and 1 deletions

View File

@ -1398,7 +1398,11 @@ ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush)
window->callback = wl_surface_frame(window->surface);
wl_callback_add_listener(window->callback, &_frame_listener, window);
if (flush) wl_surface_commit(window->surface);
if (flush)
{
wl_surface_commit(window->surface);
ecore_wl2_display_flush(window->display);
}
}
EAPI Eina_Bool

View File

@ -547,6 +547,7 @@ eng_outbuf_flush(Outbuf *ob, Tilebuf_Rect *surface_damage, Tilebuf_Rect *buffer_
end:
glsym_evas_gl_preload_render_unlock(eng_preload_make_current, ob);
ecore_wl2_display_flush(ob->wl2_disp);
}
Evas_Engine_GL_Context *