From f4cdde1f4f89729f91336ea2f5ad7a1265e3bf70 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 20 May 2024 15:36:08 +0400 Subject: Fix no outputs case handling in a few places --- src/protocols/screencopy.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/protocols') diff --git a/src/protocols/screencopy.rs b/src/protocols/screencopy.rs index 808be4cb..fd6bda68 100644 --- a/src/protocols/screencopy.rs +++ b/src/protocols/screencopy.rs @@ -94,7 +94,13 @@ where overlay_cursor, output, } => { - let output = Output::from_resource(&output).unwrap(); + let Some(output) = Output::from_resource(&output) else { + trace!("screencopy client requested non-existent output"); + let frame = data_init.init(frame, ScreencopyFrameState::Failed); + frame.failed(); + return; + }; + let buffer_size = output.current_mode().unwrap().size; let region_loc = Point::from((0, 0)); @@ -116,7 +122,13 @@ where return; } - let output = Output::from_resource(&output).unwrap(); + let Some(output) = Output::from_resource(&output) else { + trace!("screencopy client requested non-existent output"); + let frame = data_init.init(frame, ScreencopyFrameState::Failed); + frame.failed(); + return; + }; + let output_transform = output.current_transform(); let output_physical_size = output_transform.transform_size(output.current_mode().unwrap().size); -- cgit