diff --git a/komorebi/src/window_manager.rs b/komorebi/src/window_manager.rs index a6ba1181..0a335834 100644 --- a/komorebi/src/window_manager.rs +++ b/komorebi/src/window_manager.rs @@ -1387,6 +1387,17 @@ impl WindowManager { window.focus(self.mouse_follows_focus)?; } } + + // This is to correctly remove focus from the previous when changing focused workspace + // to a workspace which only contains floating windows and no other kind of managed window + if self.focused_workspace()?.containers().is_empty() + && self.focused_workspace()?.monocle_container().is_none() + && self.focused_workspace()?.maximized_window().is_none() + { + if let Some(window) = self.focused_workspace()?.floating_windows().first() { + window.focus(self.mouse_follows_focus)?; + } + } } Ok(())