derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=706f377edd5581f66b38b95441eb03fab97401b7

commit 706f377edd5581f66b38b95441eb03fab97401b7
Author: Derek Foreman <[email protected]>
Date:   Mon Oct 22 10:33:35 2018 -0500

    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 <[email protected]>
    Reviewed-by: Cedric BAIL <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D7195
---
 src/lib/evas/canvas/evas_render.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

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);
+
+            }
        }
 }
 

-- 


Reply via email to