From 312849432118a9ef6ece11b35433a830663c5a6f Mon Sep 17 00:00:00 2001 From: Paulo Cavalcanti Date: Thu, 28 Feb 2013 18:36:32 -0300 Subject: Foobar commit... Signed-off-by: Paulo Cavalcanti --- src/lib/evas/canvas/evas_object_main.c | 20 ++++++++++++++++++++ src/lib/evas/canvas/evas_object_text.c | 2 ++ src/lib/evas/include/evas_private.h | 1 + 3 files changed, 23 insertions(+) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index aadcb4138..72afc8ea5 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -228,6 +228,26 @@ evas_object_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) } } +void +evas_object_content_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) +{ + MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + + if ((obj->map) && (obj->map->surface)) + { + EINA_COW_WRITE_BEGIN(evas_object_map_cow, + obj->map, Evas_Object_Map_Data, map_write) + { + obj->layer->evas->engine.func->image_map_surface_free + (obj->layer->evas->engine.data.output, map_write->surface); + map_write->surface = NULL; + } + EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write); + } +} + void evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *eo_obj, int is_v, int was_v) { diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 45f82d31f..2cab7fd72 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -1017,6 +1017,8 @@ _text_text_set(Eo *eo_obj, void *_pd, va_list *list) if (o->cur.text != text) free(text); + evas_object_content_change(eo_obj, obj); + o->changed = 1; evas_object_change(eo_obj, obj); evas_object_clip_dirty(eo_obj, obj); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 995f00e6e..d8f1e7051 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -942,6 +942,7 @@ void evas_object_update_bounding_box(Evas_Object *obj, Evas_Object_Protected_Dat void evas_object_inject(Evas_Object *obj, Evas_Object_Protected_Data *pd, Evas *e); void evas_object_release(Evas_Object *obj, Evas_Object_Protected_Data *pd, int clean_layer); void evas_object_change(Evas_Object *obj, Evas_Object_Protected_Data *pd); +void evas_object_content_change(Evas_Object *obj, Evas_Object_Protected_Data *pd); void evas_object_clip_changes_clean(Evas_Object *obj); void evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v); void evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj); -- cgit v1.2.3