surface->output = NULL;
}
+static void
+weston_surface_reset_pending_buffer(struct weston_surface *surface)
+{
+ if (surface->pending.buffer)
+ wl_list_remove(&surface->pending.buffer_destroy_listener.link);
+ surface->pending.buffer = NULL;
+ surface->pending.sx = 0;
+ surface->pending.sy = 0;
+ surface->pending.newly_attached = 0;
+}
+
struct weston_frame_callback {
struct wl_resource *resource;
struct wl_list link;
surface->configure(surface,
surface->pending.sx, surface->pending.sy);
- if (surface->pending.buffer)
- wl_list_remove(&surface->pending.buffer_destroy_listener.link);
- surface->pending.buffer = NULL;
- surface->pending.sx = 0;
- surface->pending.sy = 0;
- surface->pending.newly_attached = 0;
+ weston_surface_reset_pending_buffer(surface);
/* wl_surface.damage */
pixman_region32_union(&surface->damage, &surface->damage,
sub->cached.sx += surface->pending.sx;
sub->cached.sy += surface->pending.sy;
- if (surface->pending.buffer)
- wl_list_remove(&surface->pending.buffer_destroy_listener.link);
- surface->pending.buffer = NULL;
- surface->pending.sx = 0;
- surface->pending.sy = 0;
- surface->pending.newly_attached = 0;
+ weston_surface_reset_pending_buffer(surface);
sub->cached.buffer_viewport = surface->pending.buffer_viewport;