From ffb7bcfc91679f33d0f190b466ea95bbe04ed565 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Tue, 24 Oct 2023 17:40:52 +0200 Subject: [PATCH] shell: Don't crash when the last output is removed --- src/shell/mod.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/shell/mod.rs b/src/shell/mod.rs index db386c1b..9e91795d 100644 --- a/src/shell/mod.rs +++ b/src/shell/mod.rs @@ -838,7 +838,7 @@ impl Workspaces { } pub fn active(&self, output: &Output) -> (Option<(&Workspace, Instant)>, &Workspace) { - let set = self.sets.get(output).unwrap(); + let set = self.sets.get(output).or(self.backup_set.as_ref()).unwrap(); ( set.previously_active .map(|(idx, start)| (&set.workspaces[idx], start)), @@ -847,12 +847,16 @@ impl Workspaces { } pub fn active_mut(&mut self, output: &Output) -> &mut Workspace { - let set = self.sets.get_mut(output).unwrap(); + let set = self + .sets + .get_mut(output) + .or(self.backup_set.as_mut()) + .unwrap(); &mut set.workspaces[set.active] } pub fn active_num(&self, output: &Output) -> (Option, usize) { - let set = self.sets.get(output).unwrap(); + let set = self.sets.get(output).or(self.backup_set.as_ref()).unwrap(); (set.previously_active.map(|(idx, _)| idx), set.active) }