On Wed, Sep 12, 2012 at 05:16:31PM +0300, Ander Conselvan de Oliveira wrote:
> From: Ander Conselvan de Oliveira <[email protected]>
> 
> When accumulating damage in the surfaces into the primary plane damage,
> regions obscured by the opaque region would be excluded. This causes a
> bug when a redraw of a surface is obscured by an opaque surface on
> another plane. The drawing to the former surface is clipped but
> its damage is never added to the primary plane and is just lost. Moving
> the opaque window later reveals the not-up-to-date content below it.

Ah, yes, good catch.  When the opaque surface is part of the primary
plane, we'll clear the damage when we repaint the opaque surface, if
not, the damage will stay around until the opqaue overlay is moved,
which is what we want.  Committed.

Kristian

> ---
>  src/compositor.c |    1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/src/compositor.c b/src/compositor.c
> index 840a2a9..04c9be8 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -847,7 +847,6 @@ surface_accumulate_damage(struct weston_surface *surface,
>                                         surface->geometry.y - 
> surface->plane->y);
>       }
>  
> -     pixman_region32_subtract(&surface->damage, &surface->damage, opaque);
>       pixman_region32_union(&surface->plane->damage,
>                             &surface->plane->damage, &surface->damage);
>       empty_region(&surface->damage);
> -- 
> 1.7.9.5
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to