summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derek.foreman.samsung@gmail.com>2018-10-22 10:33:35 -0500
committerDerek Foreman <derek.foreman.samsung@gmail.com>2018-12-14 09:52:07 -0600
commit706f377edd5581f66b38b95441eb03fab97401b7 (patch)
tree534b5ae4acb6e68fceb515842d07b7c28bd0679a
parent95dce74b85e9e89b946afedc01560a94e9cadf32 (diff)
downloadefl-706f377edd5581f66b38b95441eb03fab97401b7.tar.gz
evas_render: Render missing bits when plane state changes
When we move an object into or off of a plane, we need the scene to be rendered as if the object wasn't there. This adds apprpopriate damage to make that happen. Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com> Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7195
-rw-r--r--src/lib/evas/canvas/evas_render.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index ab3e8616c3..00f2eff473 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -3179,6 +3179,28 @@ _evas_planes(Evas_Public_Data *evas)
_evas_object_image_plane_release(eo_obj2, obj2, output);
} else break;
}
+ if (evas_object_plane_changed(eo_obj2, obj2))
+ {
+ /* Since we're lifting this object out of the scene graph
+ * (or putting it back), we need to force redraw of the space
+ * under it.
+ */
+ _evas_canvas_damage_rectangle_add(NULL, evas,
+ obj2->cur->geometry.x,
+ obj2->cur->geometry.y,
+ obj2->cur->geometry.w,
+ obj2->cur->geometry.h);
+
+ /* We also need to clean its previously drawn position
+ * but only if we're removing it */
+ if (evas_object_is_on_plane(eo_obj2, obj2))
+ _evas_canvas_damage_rectangle_add(NULL, evas,
+ obj2->prev->geometry.x,
+ obj2->prev->geometry.y,
+ obj2->prev->geometry.w,
+ obj2->prev->geometry.h);
+
+ }
}
}