diff --git a/src/compositor.c b/src/compositor.c index a8ace9c5..48b26a5a 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -179,6 +179,9 @@ weston_client_launch(struct weston_compositor *compositor, return client; } +static void +update_shm_texture(struct weston_surface *surface); + static void 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, buffer_destroy_listener); + if (es->buffer && wl_buffer_is_shm(es->buffer)) + update_shm_texture(es); + es->buffer = NULL; }