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.
This commit is contained in:
Kenny Levinsen 2026-01-15 14:55:36 +01:00
parent f735439543
commit b8af8f1ad9

View file

@ -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);