summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_render.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_render.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index b12af6b99b..d33cd42421 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2048,6 +2048,21 @@ evas_render_updates_internal(Evas *eo_e,
2048 them from the pending list. */ 2048 them from the pending list. */
2049 eina_array_remove(&e->pending_objects, pending_change, NULL); 2049 eina_array_remove(&e->pending_objects, pending_change, NULL);
2050 2050
2051 /* Reinsert parent of changed object in the pending changed state */
2052 for (i = 0; i < e->pending_objects.count; ++i)
2053 {
2054 obj = eina_array_data_get(&e->pending_objects, i);
2055 eo_obj = obj->object;
2056 if (obj->smart.parent)
2057 {
2058 Evas_Object_Protected_Data *smart_parent;
2059
2060 smart_parent = eo_data_scope_get(obj->smart.parent,
2061 EVAS_OBJ_CLASS);
2062 evas_object_change(obj->smart.parent, smart_parent);
2063 }
2064 }
2065
2051 for (i = 0; i < e->render_objects.count; ++i) 2066 for (i = 0; i < e->render_objects.count; ++i)
2052 { 2067 {
2053 obj = eina_array_data_get(&e->render_objects, i); 2068 obj = eina_array_data_get(&e->render_objects, i);
@@ -2055,7 +2070,7 @@ evas_render_updates_internal(Evas *eo_e,
2055 obj->pre_render_done = EINA_FALSE; 2070 obj->pre_render_done = EINA_FALSE;
2056 if ((obj->changed) && (do_draw)) 2071 if ((obj->changed) && (do_draw))
2057 { 2072 {
2058 obj->func->render_post(eo_obj, obj, obj->private_data); 2073 obj->func->render_post(eo_obj, obj, obj->private_data);
2059 obj->restack = EINA_FALSE; 2074 obj->restack = EINA_FALSE;
2060 evas_object_change_reset(eo_obj); 2075 evas_object_change_reset(eo_obj);
2061 } 2076 }