From 39528878f87e1b5ffe90ec3a9e6bb7de963c2b0e Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Thu, 16 Jan 2025 16:23:57 +0100 Subject: [PATCH] toplevel_info: Don't send geometry updates, while resizing --- src/wayland/handlers/toplevel_info.rs | 6 +++++- src/wayland/protocols/toplevel_info.rs | 13 ++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/wayland/handlers/toplevel_info.rs b/src/wayland/handlers/toplevel_info.rs index 18b16a07..37033f4f 100644 --- a/src/wayland/handlers/toplevel_info.rs +++ b/src/wayland/handlers/toplevel_info.rs @@ -48,7 +48,11 @@ impl Window for CosmicSurface { } fn is_sticky(&self) -> bool { - CosmicSurface::is_sticky(&self) + CosmicSurface::is_sticky(self) + } + + fn is_resizing(&self) -> bool { + CosmicSurface::is_resizing(self, true).unwrap_or(false) } fn global_geometry(&self) -> Option> { diff --git a/src/wayland/protocols/toplevel_info.rs b/src/wayland/protocols/toplevel_info.rs index 0fe1ec1b..b52ae354 100644 --- a/src/wayland/protocols/toplevel_info.rs +++ b/src/wayland/protocols/toplevel_info.rs @@ -33,6 +33,7 @@ pub trait Window: IsAlive + Clone + PartialEq + Send { fn is_fullscreen(&self) -> bool; fn is_minimized(&self) -> bool; fn is_sticky(&self) -> bool; + fn is_resizing(&self) -> bool; fn global_geometry(&self) -> Option>; fn user_data(&self) -> &UserDataMap; } @@ -536,12 +537,14 @@ where changed = true; } - let geometry = window.global_geometry(); let mut geometry_changed = false; - if handle_state.geometry != geometry { - handle_state.geometry = geometry; - changed = true; - geometry_changed = true; + if !window.is_resizing() { + let geometry = window.global_geometry(); + if handle_state.geometry != geometry { + handle_state.geometry = geometry; + changed = true; + geometry_changed = true; + } } if let Ok(client) = dh.get_client(instance.id()) {