diff options
author | Paulo Cavalcanti <paulo.cavalcanti@linux.intel.com> | 2013-02-28 18:36:32 -0300 |
---|---|---|
committer | Paulo Cavalcanti <paulo.cavalcanti@linux.intel.com> | 2013-02-28 18:36:32 -0300 |
commit | 312849432118a9ef6ece11b35433a830663c5a6f (patch) | |
tree | 83f879a35ecfcc15369b664f6ea1961156c4fe22 | |
parent | 8ecd30d578ebac46bbdf5f6d5c0b7cad1187f84f (diff) | |
download | efl-for-upstream.tar.gz efl-for-upstream.tar.xz efl-for-upstream.zip |
Foobar commit...for-upstream
Signed-off-by: Paulo Cavalcanti <paulo.cavalcanti@linux.intel.com>
-rw-r--r-- | src/lib/evas/canvas/evas_object_main.c | 20 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_object_text.c | 2 | ||||
-rw-r--r-- | src/lib/evas/include/evas_private.h | 1 |
3 files changed, 23 insertions, 0 deletions
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 @@ -229,6 +229,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) { Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS); 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); |