[PATCH weston 10/11] Reset pending surface delta x and y on commit

Kristian Høgsberg hoegsberg at gmail.com
Thu Nov 8 08:30:48 PST 2012


On Wed, Nov 07, 2012 at 05:51:44PM +1100, Daniel Stone wrote:
> The following sequence:
> 	wl_surface::attach(s, b, 1, 2)
> 	wl_surface::commit(s)
> 	wl_surface::commit(s)
> would actually result in the surface getting moved by (2,4) as the
> pending attach delta wasn't reset on commit, only by another attach.
> 
> This only shows up on single-buffered surfaces.

Yes, I've seen this too (resizing gnome-terminal form above and then
watching it crawl down the screen as the cursor blinks).  Applied to
1.0, thanks.

Kristian

> Signed-off-by: Daniel Stone <daniel at fooishbar.org>
> ---
>  src/compositor.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/compositor.c b/src/compositor.c
> index d5b13c8..855203a 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -1258,6 +1258,8 @@ surface_commit(struct wl_client *client, struct wl_resource *resource)
>  	if (surface->buffer && surface->configure)
>  		surface->configure(surface, surface->pending.sx,
>  				   surface->pending.sy);
> +	surface->pending.sx = 0;
> +	surface->pending.sy = 0;
>  
>  	/* wl_surface.damage */
>  	pixman_region32_init_rect(&opaque, 0, 0,
> -- 
> 1.7.10.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list