From c7ca7221abb7957b9d746fc29cd726e8971aea58 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 16 Aug 2017 20:04:07 +0900 Subject: [PATCH] evas: Fix auto-show of EO objects Objects show should happen as early as possible during the render cycle, as it affects smart objects calculation and everything else. Thanks @JackDanielZ for the report! Fixes T5880 --- src/lib/evas/canvas/evas_render.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index aaa519b36d..c72a3f6bb7 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2865,6 +2865,8 @@ evas_render_pre(Evas *eo_e, Evas_Public_Data *evas) { Eo *eo_obj; + if (!evas->finalize_objects) return; // avoid evlog + // Finalize EO objects now eina_evlog("+render_pre_objects_finalize", eo_e, 0.0, NULL); @@ -2904,8 +2906,6 @@ evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas, eina_evlog("+render_setup", eo_e, 0.0, NULL); RD(level, " [--- UPDATE %i %i %ix%i\n", ux, uy, uw, uh); - evas_render_pre(eo_e, evas); - off_x = cx - ux; off_y = cy - uy; /* build obscuring objects list (in order from bottom to top) */ @@ -3140,6 +3140,9 @@ evas_render_updates_internal(Evas *eo_e, if (evas_cserve2_use_get()) evas_cserve2_dispatch(); #endif + + evas_render_pre(eo_e, evas); + eina_evlog("+render_calc", eo_e, 0.0, NULL); evas_call_smarts_calculate(eo_e); eina_evlog("-render_calc", eo_e, 0.0, NULL);