diff --git a/daemon/manager.rs b/daemon/manager.rs index 2006554..7332485 100644 --- a/daemon/manager.rs +++ b/daemon/manager.rs @@ -220,8 +220,11 @@ impl NiriTag { } TagExclusive(t) => { tracing::debug!("Changing all tags"); - let (active_wid, inactive_wid): (HashMap, HashMap) = - self.windows.iter().partition(|(_, it)| **it == t); + let (active_wid, inactive_wid): (HashMap, HashMap) = self + .windows + .iter() + .filter(|(_, it)| **it != 0) + .partition(|(_, it)| **it == t); let focus = active_wid.keys().last(); self.move_windows(&inactive, inactive_wid.keys().cloned().collect()) .await; @@ -348,6 +351,7 @@ impl NiriTag { .or_default(); self.tags .iter_mut() + .filter(|(it, _)| **it != 0) .for_each(|(it, ts)| ts.enabled = *it == t); self.fire_event(TagEvent::TagExclusive(t)).await; TagExclusive(t)