When accumulating damage in the repaint loop, the opaque region of surfaces in other planes is added to the overall opaque region. This causes surface->clip to contain the areas obscured by surfaces in other planes. Change it to contain only the opaque region of surfaces in the primary plane This fixes a bug where moving a window that was just moved from the primary plane to another would leave artifacts on the screen. The problem was that the damage generated by weston_surface_move_to_plane() would be clipped on weston_surface_redraw(), leaving the contets below it unchanged. Moving the overlaid surface would no longer generate damage on the primary plane, so the contents would remain unchanged (i.e. wrong) indefinitely.
parent
84cf541b27
commit
3b70b66fa9
Loading…
Reference in new issue