diff --git a/crates/workspace/src/multi_workspace.rs b/crates/workspace/src/multi_workspace.rs index e9baccb4d93c9406d7b766db3d8e4ce4cb7198b7..aad5207e8b8d119ed6381a59665782c2b1e540d1 100644 --- a/crates/workspace/src/multi_workspace.rs +++ b/crates/workspace/src/multi_workspace.rs @@ -491,7 +491,15 @@ impl MultiWorkspace { workspace.set_sidebar_focus_handle(None); }); } - self.restore_previous_focus(true, window, cx); + let sidebar_has_focus = self + .sidebar + .as_ref() + .is_some_and(|s| s.focus_handle(cx).contains_focused(window, cx)); + if sidebar_has_focus { + self.restore_previous_focus(true, window, cx); + } else { + self.previous_focus_handle.take(); + } self.serialize(cx); cx.notify(); }