diff options
| -rw-r--r-- | src/niri.rs | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/niri.rs b/src/niri.rs index a045e4dd..59e3edf7 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1723,16 +1723,9 @@ impl State { (CastTarget::Output(output.downgrade()), size, refresh, false) } StreamTargetId::Window { id } => { - let mut window = None; - self.niri.layout.with_windows(|mapped, _, _| { - if mapped.id().get() != id { - return; - } - - window = Some(mapped.window.clone()); - }); - - let Some(window) = window else { + let Some(window) = self.niri.layout.windows().find_map(|(_, mapped)| { + (mapped.id().get() == id).then_some(&mapped.window) + }) else { warn!("error starting screencast: requested window is missing"); self.niri.stop_cast(session_id); return; @@ -1740,7 +1733,7 @@ impl State { // Use the cached output since it will be present even if the output was // currently disconnected. - let Some(output) = self.niri.mapped_cast_output.get(&window) else { + let Some(output) = self.niri.mapped_cast_output.get(window) else { warn!("error starting screencast: requested window is missing"); self.niri.stop_cast(session_id); return; |
