From b8af8f1ad969a6b30d8d8eb58d55a42520833666 Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Thu, 15 Jan 2026 14:55:36 +0100 Subject: [PATCH] ext_image_copy_capture_v1: Copy irrespective of damage If the capture source emits a frame event, it does so in response to the capture client's frame request which must eventually yield either a ready or a frame event. By skipping the copy when there is no damage, we emit neither and leave the capture source in a state where it waits on a new frame request that will never come. Emit whatever the source hands us even if there is no damage to progress the capture loop. --- types/wlr_ext_image_copy_capture_v1.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/types/wlr_ext_image_copy_capture_v1.c b/types/wlr_ext_image_copy_capture_v1.c index c9e7b0079..9f498a9a6 100644 --- a/types/wlr_ext_image_copy_capture_v1.c +++ b/types/wlr_ext_image_copy_capture_v1.c @@ -425,8 +425,7 @@ static void session_handle_source_frame(struct wl_listener *listener, void *data pixman_region32_union(&session->damage, &session->damage, event->damage); struct wlr_ext_image_copy_capture_frame_v1 *frame = session->frame; - if (frame != NULL && frame->capturing && - !pixman_region32_empty(&session->damage)) { + if (frame != NULL && frame->capturing) { pixman_region32_union(&frame->buffer_damage, &frame->buffer_damage, &session->damage);