Reset pending surface delta x and y on commit

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.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
dev
Daniel Stone 12 years ago committed by Kristian Høgsberg
parent d8e8271e94
commit b4f4a5980f
  1. 2
      src/compositor.c

@ -1258,6 +1258,8 @@ surface_commit(struct wl_client *client, struct wl_resource *resource)
if (surface->buffer && surface->configure) if (surface->buffer && surface->configure)
surface->configure(surface, surface->pending.sx, surface->configure(surface, surface->pending.sx,
surface->pending.sy); surface->pending.sy);
surface->pending.sx = 0;
surface->pending.sy = 0;
/* wl_surface.damage */ /* wl_surface.damage */
pixman_region32_init_rect(&opaque, 0, 0, pixman_region32_init_rect(&opaque, 0, 0,

Loading…
Cancel
Save