From eea1b83cf6c47b61aea35a70d2e9ff7b2b899780 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Tue, 15 Oct 2013 22:24:27 +0900 Subject: [PATCH] evas/map - Fixed the map surface to be updated properly. By tranversing the whole of the map target's tree, it decides to update the map surface to be redrawn if one of the objects is changed except the clipper itself. --- ChangeLog | 7 +++++++ NEWS | 2 ++ src/lib/evas/canvas/evas_object_smart.c | 15 +++++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3b93761..aaf58a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2013-10-15 ChunEon Park (Hermet) + * Fixed the map surface to be updated properly. By tranversing the + whole of the map target's tree, it decides to update the map + surface to be redrawn if one of the objects is changed except the + clipper itself. + +2013-10-15 ChunEon Park (Hermet) + * Fixed memory leak in the edje map color transition. 2013-10-11 Carsten Haitzler (The Rasterman) diff --git a/NEWS b/NEWS index 9693b0d..000fe0d 100644 --- a/NEWS +++ b/NEWS @@ -356,6 +356,8 @@ Fixes: - Skip the map rendering if all points are transparent. - Evas bidi: Fixed a bug causing BiDi not to work in some cases. - Evas textblock: fixed an issue with markup_get and markup_to_utf8 behaving differently (markup_get was misbehaving). + - Fixed the map surface to be updated properly. By tranversing the whole of the map target's tree, it decides to update the map surface to be redrawn if one of the objects is changed except the clipper itself. + * Ecore: - Don't leak fd on exec. - Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly. diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 8f156c0..dc3ae11 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -1221,13 +1221,15 @@ _smart_members_changed_check(Evas_Object *eo_obj, Evas_Object_Protected_Data *ob { Evas_Object_Protected_Data *o2; - if (!obj->changed) return EINA_FALSE; - if (!obj->smart.smart) return EINA_TRUE; - if (!evas_object_is_visible(eo_obj, obj) && !evas_object_was_visible(eo_obj, obj)) return EINA_FALSE; + if (!obj->smart.smart) + { + if (obj->changed && !obj->clip.clipees) return EINA_TRUE; + return EINA_FALSE; + } if (_evas_render_has_map(eo_obj, obj)) { if (((obj->changed_pchange) && (obj->changed_map)) || @@ -1246,7 +1248,12 @@ evas_object_smart_changed_get(Evas_Object *eo_obj) Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS); Evas_Object_Protected_Data *o2; - if (!obj->is_smart) return obj->changed; + if (!obj->is_smart) + { + if (obj->changed && !obj->clip.clipees) return EINA_TRUE; + else return EINA_FALSE; + } + if (obj->changed_color) return EINA_TRUE; EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2) -- 2.7.4