diff --git a/ChangeLog b/ChangeLog index 3b937615d0..aaf58a1f39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +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. diff --git a/NEWS b/NEWS index 9693b0d989..000fe0daeb 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 8f156c0088..dc3ae1103f 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)