forked from enlightenment/efl
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
This commit is contained in:
parent
95dce74b85
commit
706f377edd
|
@ -3179,6 +3179,28 @@ _evas_planes(Evas_Public_Data *evas)
|
||||||
_evas_object_image_plane_release(eo_obj2, obj2, output);
|
_evas_object_image_plane_release(eo_obj2, obj2, output);
|
||||||
} else break;
|
} 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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue