compositor: flush the batched up damage when shm buffer is destroyed

Since we now batch up damage and only handle it at repaint time, we need
to apply it in case a buffer is destroyed so we don't lose it.

Ander found the problem, but we need to fix it in the compositor so we
don't change the behavior of the compositor.
dev
Kristian Høgsberg 13 years ago
parent 83c4c40135
commit a85b4fb6ac
  1. 6
      src/compositor.c

@ -179,6 +179,9 @@ weston_client_launch(struct weston_compositor *compositor,
return client; return client;
} }
static void
update_shm_texture(struct weston_surface *surface);
static void static void
surface_handle_buffer_destroy(struct wl_listener *listener, void *data) surface_handle_buffer_destroy(struct wl_listener *listener, void *data)
{ {
@ -186,6 +189,9 @@ surface_handle_buffer_destroy(struct wl_listener *listener, void *data)
container_of(listener, struct weston_surface, container_of(listener, struct weston_surface,
buffer_destroy_listener); buffer_destroy_listener);
if (es->buffer && wl_buffer_is_shm(es->buffer))
update_shm_texture(es);
es->buffer = NULL; es->buffer = NULL;
} }

Loading…
Cancel
Save