[PATCH weston 1/3] shell: Fix artifacts caused by workspace change animation

Ander Conselvan de Oliveira conselvan2 at gmail.com
Wed May 7 01:57:26 PDT 2014


From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>

Views that extend past the bottom of the output are still visible after
the workspace animation ends but before its layer is hidden. When the
layer was hidden, nothing would cause those regions to be repainted,
leading to artifacts.

https://bugs.freedesktop.org/show_bug.cgi?id=78363
---
 desktop-shell/shell.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index a631c62..fac3120 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1027,8 +1027,17 @@ finish_workspace_change_animation(struct desktop_shell *shell,
 				  struct workspace *from,
 				  struct workspace *to)
 {
+	struct weston_view *view;
+
 	weston_compositor_schedule_repaint(shell->compositor);
 
+	/* Views that extend past the bottom of the output are still
+	 * visible after the workspace animation ends but before its layer
+	 * is hidden. In that case, we need to damage below those views so
+	 * that the screen is properly repainted. */
+	wl_list_for_each(view, &from->layer.view_list, layer_link)
+		weston_view_damage_below(view);
+
 	wl_list_remove(&shell->workspaces.animation.link);
 	workspace_deactivate_transforms(from);
 	workspace_deactivate_transforms(to);
-- 
1.8.3.2



More information about the wayland-devel mailing list