From 7234a81672f90f81db67e67c119c6a4f8983ee73 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Fri, 22 Mar 2024 18:22:58 +0100 Subject: [PATCH] stack: Don't force constant redraws --- src/shell/element/stack.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/shell/element/stack.rs b/src/shell/element/stack.rs index 9a884c06..f5ec6eae 100644 --- a/src/shell/element/stack.rs +++ b/src/shell/element/stack.rs @@ -972,9 +972,7 @@ impl SpaceElement for CosmicStack { } fn set_activate(&self, activated: bool) { SpaceElement::set_activate(&self.0, activated); - self.0.force_redraw(); - self.0.with_program(|p| { - p.activated.store(activated, Ordering::SeqCst); + let changed = self.0.with_program(|p| { if !p.group_focused.load(Ordering::SeqCst) { p.windows .lock() @@ -982,7 +980,12 @@ impl SpaceElement for CosmicStack { .iter() .for_each(|w| SpaceElement::set_activate(w, activated)) } + p.activated.swap(activated, Ordering::SeqCst) != activated }); + + if changed { + self.0.force_redraw(); + } } fn output_enter(&self, output: &Output, overlap: Rectangle) { SpaceElement::output_enter(&self.0, output, overlap);