From 35622614d0ee6510692bb3f4a9fddd260e12ba79 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 e6cb647c0c..004896de90 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -2649,6 +2649,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) {