aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Cavalcanti <paulo.cavalcanti@linux.intel.com>2013-02-28 18:36:32 -0300
committerPaulo Cavalcanti <paulo.cavalcanti@linux.intel.com>2013-02-28 18:36:32 -0300
commit312849432118a9ef6ece11b35433a830663c5a6f (patch)
tree83f879a35ecfcc15369b664f6ea1961156c4fe22
parent8ecd30d578ebac46bbdf5f6d5c0b7cad1187f84f (diff)
downloadefl-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.c20
-rw-r--r--src/lib/evas/canvas/evas_object_text.c2
-rw-r--r--src/lib/evas/include/evas_private.h1
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);