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
This commit is contained in:
Jean-Philippe Andre 2017-08-16 20:04:07 +09:00
parent 7d5e5f749e
commit c7ca7221ab
1 changed files with 5 additions and 2 deletions

View File

@ -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);