From a3df48fe176e3fdabcc3eb8d54e21fc9aa2fe3d5 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Tue, 28 May 2024 18:46:25 -0400 Subject: [PATCH] fix: update maximized elements when refreshing the floating layout fixes the gap between the window and the panel --- src/shell/layout/floating/mod.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/shell/layout/floating/mod.rs b/src/shell/layout/floating/mod.rs index ac9ebdf4..0f4e9311 100644 --- a/src/shell/layout/floating/mod.rs +++ b/src/shell/layout/floating/mod.rs @@ -1171,6 +1171,26 @@ impl FloatingLayout { *element.last_geometry.lock().unwrap() = None; self.map_internal(element, None, None, None); } + + // update maximized elements + let update = self + .space + .elements() + .find(|e| e.is_maximized(false)) + .map(|mapped| { + let output = self.space.outputs().next().unwrap().clone(); + let layers = layer_map_for_output(&output); + let geometry = layers.non_exclusive_zone().as_local(); + + mapped.set_bounds(geometry.size.as_logical()); + mapped.set_geometry(geometry.to_global(&output)); + mapped.configure(); + + (mapped.clone(), geometry.loc) + }); + if let Some((mapped, position)) = update { + self.space.map_element(mapped, position.as_logical(), true); + } } pub fn animations_going(&self) -> bool {