mirror of
https://github.com/brl/mutter.git
synced 2025-01-22 17:38:56 +00:00
5a565b4258
Updating the last_paint_volume while painting has proven itself to be quite prone to issues: First we had to make sure actors painted by offscreen effects get their last_paint_volumes updated correctly (see 0320649a1c50993f308344e0dd296abaad0ee6d4), and now a new issue turned up where we don't update the paint volumes while a fullscreen unredirect is happening. To stop those issues from happening and to lay the foundation for using the last_paint_volume for other things, update the last_paint_volume in a separate step before painting instead of doing it in clutter_actor_paint(). To save some resources, avoid introducing another traversal of the scenegraph and add that step into the existing step of updating the stage_views lists of actors. To properly update the paint volumes, we need to do that after finishing the queued redraws, which is why we move clutter_stage_maybe_finish_queue_redraws() to happen before the new clutter_stage_finish_layout(). Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1699 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1773>