[PATCH weston 1/3] shell: Fix artifacts caused by workspace change animation
Ander Conselvan de Oliveira
conselvan2 at gmail.com
Wed May 7 23:25:02 PDT 2014
On 05/07/2014 04:10 PM, Jasper St. Pierre wrote:
> Hm, it seems to me that hiding a layer should cause all the regions it
> occupied to be marked as needing repaint. Fixing the scene graph is
> better than a one-off at the end of an animation.
I agree. I actually sent a patch in January to create a
weston_layer_show() function, which would be a natural place to handle
this, but it didn't get traction.
http://lists.freedesktop.org/archives/wayland-devel/2014-January/012969.html
Cheers,
Ander
> On Wed, May 7, 2014 at 4:57 AM, Ander Conselvan de Oliveira
> <conselvan2 at gmail.com <mailto:conselvan2 at gmail.com>> wrote:
>
> From: Ander Conselvan de Oliveira
> <ander.conselvan.de.oliveira at intel.com
> <mailto: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
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> <mailto:wayland-devel at lists.freedesktop.org>
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
>
>
>
> --
> Jasper
More information about the wayland-devel
mailing list