From f2d6f70e13f6e7510326ced59ae5db6df705d955 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Mon, 21 Jul 2025 15:15:03 -0400 Subject: [PATCH] fix: only activate the active window of the stack on activation --- src/shell/element/stack.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/shell/element/stack.rs b/src/shell/element/stack.rs index bc3d5165..2384e060 100644 --- a/src/shell/element/stack.rs +++ b/src/shell/element/stack.rs @@ -352,10 +352,16 @@ impl CosmicStack { } FocusDirection::In if swap.is_none() => { if !p.group_focused.swap(false, Ordering::SeqCst) { - p.windows.lock().unwrap().iter().for_each(|w| { - w.set_activated(true); - w.send_configure(); - }); + p.windows + .lock() + .unwrap() + .iter() + .enumerate() + .for_each(|(i, w)| { + w.set_activated(p.active.load(Ordering::SeqCst) == i); + w.send_configure(); + }); + (true, true) } else { (false, false) @@ -1162,7 +1168,11 @@ impl SpaceElement for CosmicStack { .lock() .unwrap() .iter() - .for_each(|w| SpaceElement::set_activate(w, activated)) + .enumerate() + .for_each(|(i, w)| { + w.set_activated(activated && p.active.load(Ordering::SeqCst) == i); + w.send_configure(); + }); } p.activated.swap(activated, Ordering::SeqCst) != activated });