diff --git a/komorebi/src/process_event.rs b/komorebi/src/process_event.rs index a276baf2..32df5ed1 100644 --- a/komorebi/src/process_event.rs +++ b/komorebi/src/process_event.rs @@ -353,9 +353,11 @@ impl WindowManager { } } - if workspace_contains_window && workspace_has_monocle_container { - self.toggle_monocle()?; - window.focus(self.mouse_follows_focus)?; + if matches!(event, WindowManagerEvent::Uncloak(_, _)) { + if workspace_contains_window && workspace_has_monocle_container { + self.toggle_monocle()?; + window.focus(self.mouse_follows_focus)?; + } } } } diff --git a/komorebi/src/window_manager.rs b/komorebi/src/window_manager.rs index 1b6b8caf..4dbd92c3 100644 --- a/komorebi/src/window_manager.rs +++ b/komorebi/src/window_manager.rs @@ -1129,7 +1129,11 @@ impl WindowManager { tracing::info!("focusing container"); - let new_idx = workspace.new_idx_for_direction(direction); + let new_idx = if workspace.monocle_container().is_some() { + None + } else { + workspace.new_idx_for_direction(direction) + }; let mut cross_monitor_monocle = false;