From 8a2a17161ed25dc4785e8a33fc70082e2cc90f6e Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 31 Jul 2018 17:02:39 -0400 Subject: [PATCH] ecore_evas: Make sure a manual render does a manual render Summary: If we call ecore_evas_manual_render() during an async render, it does nothing. This is harmful if we've added render post callbacks during that async render and expect them to fire. Force a sync and another render if we're in an async render. ref T7156 Depends on D6714 Reviewers: zmike Reviewed By: zmike Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7156 Differential Revision: https://phab.enlightenment.org/D6715 --- src/lib/ecore_evas/ecore_evas.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 7307c73a..0321e70 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -2820,6 +2820,15 @@ ecore_evas_manual_render(Ecore_Evas *ee) ecore_evas_animator_tick(ee, NULL, t); } + else + { + /* We want to ensure a manual render actually takes place, + * even if we were in the middle of an async render. This + * will ensure that any post render callbacks added + * specifically for this manual render will fire. + */ + ecore_evas_render_wait(ee); + } if (ee->engine.func->fn_render) { -- 2.7.4