evas: fix garbage with left over mapped smart object.

This fix the bug reported by Bruno Dilly.


SVN revision: 73944
This commit is contained in:
Cedric BAIL 2012-07-17 03:35:53 +00:00
parent 7f56d9a4da
commit 64fd2b487a
4 changed files with 9 additions and 3 deletions

View File

@ -884,3 +884,8 @@
2012-07-16 Hermet (ChunEon Park)
* Fixed to do pre render for the children of mapped object.
2012-07-17 Cedric Bail
* Fix garbage left by mapped smart object when they fly away from the canvas.

View File

@ -21,6 +21,7 @@ Fixes:
* Add missing files in the tarball.
* Add svg rendering with Esvg
* Don't accept broken map.
* Fix garbage left by mapped smart object when they fly away from the canvas.
Removal:
* Remove EVAS_FRAME_QUEUING, EVAS_SLI, METRIC_CACHE and WORD_CACHE.

View File

@ -104,6 +104,7 @@ _evas_map_calc_map_geometry(Evas_Object *obj)
obj->cur.map->normal_geometry.y = yy1;
obj->cur.map->normal_geometry.w = (x2 - x1);
obj->cur.map->normal_geometry.h = (yy2 - yy1);
obj->changed_map = ch;
if (ch) _evas_map_calc_geom_change(obj);
}
@ -494,7 +495,6 @@ evas_object_map_set(Evas_Object *obj, const Evas_Map *map)
if (obj->cur.usemap)
evas_object_mapped_clip_across_mark(obj);
}
obj->changed_map = EINA_TRUE;
_evas_map_calc_map_geometry(obj);
}

View File

@ -93,7 +93,7 @@ evas_object_change(Evas_Object *obj)
obj->changed_move = EINA_FALSE;
}
if (obj->changed) return;
if (obj->changed) return;
evas_render_object_recalc(obj);
/* set changed flag on all objects this one clips too */
@ -321,7 +321,7 @@ evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *obj, int i
int
evas_object_was_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
{
if (obj->smart.smart) return 0;
if (obj->smart.smart && !obj->prev.map && !obj->prev.usemap) return 0;
/* assumes coords have been recalced */
if ((RECTS_INTERSECT(x, y, w, h,
obj->prev.cache.clip.x,