From da30c71ddbae96b1aad4ba5f1ce7b426930e461d Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 7 Jun 2018 14:50:41 +0900 Subject: [PATCH] evas map: an alternative patch for map rendering issue. This is an alternative patch for 9fcd03952ee51d34871794cb95585f3e589a3bb9. Since canvas map rendering sequence is quite complex, Not easy to estimiate the logic sequence by all scenarios. The brings me to fix the code case by case. --- src/lib/evas/canvas/evas_render.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 7d5ce29..98658fc 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -497,16 +497,19 @@ _evas_render_phase1_direct(Evas_Public_Data *e, _evas_object_gfx_map_update(obj); + Eina_Bool has_map = _evas_render_has_map(obj); + RD(0, " pre-render-done smart:%p|%p [%p, %i] | [%p, %i] has_map:%i had_map:%i\n", obj->smart.smart, obj->is_smart ? evas_object_smart_members_get_direct(eo_obj) : NULL, obj->map->cur.map, obj->map->cur.usemap, obj->map->prev.map, obj->map->prev.usemap, - _evas_render_has_map(obj), - _evas_render_had_map(obj)); + has_map, _evas_render_had_map(obj)); + if ((obj->is_smart) && - (((_evas_render_has_map(obj) && !_evas_render_can_map(obj)) || - (obj->changed_src_visible)))) + ((has_map && !_evas_render_can_map(obj)) || + (obj->changed_map && !has_map) || + obj->changed_src_visible)) { RD(0, " has map + smart\n"); _evas_render_prev_cur_clip_cache_add(e, obj); -- 2.7.4