canvas proxy: fix a missing case that proxy not updated properly.

Very complex to say, if its source object is remained as chaged state in pending object
in rendering stage, the proxy object could miss to update in the next frame because
source object won't be changed again in evas_object_change().

Thus we need to double-check if the proxy missed update or not just in the rendering.
Not clean but this is a compromised solution to not be burden for finding/checking proxies
in object trees every time.

@fix
This commit is contained in:
Hermet Park 2020-03-12 20:39:12 +09:00
parent 06e9af1b0c
commit f257401a4f
1 changed files with 3 additions and 0 deletions

View File

@ -379,6 +379,9 @@ _evas_proxy_redraw_set(Evas_Public_Data *e, Evas_Object_Protected_Data *obj,
if (render)
{
/* Not good... but make it sure if the proxies have missed at update
if its sources are remained changed as pending objects in the prev frame. */
evas_object_change(eo_proxy, proxy);
proxy->func->render_pre(eo_proxy, proxy, proxy->private_data);
_evas_render_prev_cur_clip_cache_add(e, proxy);
}