diff --git a/types/wlr_ext_image_copy_capture_v1.c b/types/wlr_ext_image_copy_capture_v1.c index 6dc8ca9b..321c6f99 100644 --- a/types/wlr_ext_image_copy_capture_v1.c +++ b/types/wlr_ext_image_copy_capture_v1.c @@ -385,6 +385,10 @@ static void session_destroy(struct wlr_ext_image_copy_capture_session_v1 *sessio EXT_IMAGE_COPY_CAPTURE_FRAME_V1_FAILURE_REASON_STOPPED); } + if (session->source->impl->stop) { + session->source->impl->stop(session->source); + } + ext_image_copy_capture_session_v1_send_stopped(session->resource); wl_resource_set_user_data(session->resource, NULL); @@ -455,6 +459,10 @@ static void session_create(struct wl_resource *parent_resource, uint32_t new_id, return; } + if (source->impl->start) { + source->impl->start(source, options & EXT_IMAGE_COPY_CAPTURE_MANAGER_V1_OPTIONS_PAINT_CURSORS); + } + session->resource = session_resource; session->source = source; pixman_region32_init_rect(&session->damage, 0, 0, source->width,