diff --git a/src/shell/layout/floating/mod.rs b/src/shell/layout/floating/mod.rs index 81c7a4da..f2f475a4 100644 --- a/src/shell/layout/floating/mod.rs +++ b/src/shell/layout/floating/mod.rs @@ -295,6 +295,7 @@ impl FloatingLayout { for mapped in self .space .elements() + .filter(|w| w.alive()) .cloned() .collect::>() .into_iter() @@ -309,7 +310,10 @@ impl FloatingLayout { None, ); } else { - let geometry = self.space.element_geometry(&mapped).unwrap().to_f64(); + let Some(geometry) = self.space.element_geometry(&mapped) else { + continue; + }; + let geometry = geometry.to_f64(); let new_loc = ( ((geometry.loc.x - old_output_geometry.loc.x).max(0.) / old_output_geometry.size.w