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.
This commit is contained in:
ChunEon Park 2013-10-15 22:24:27 +09:00
parent cf859cfacc
commit eea1b83cf6
3 changed files with 20 additions and 4 deletions

View File

@ -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.

2
NEWS
View File

@ -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.

View File

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