diff --git a/crates/sidebar/src/sidebar.rs b/crates/sidebar/src/sidebar.rs index f65a05a1e5fb7abc967c7290f15fe90a6a8600d6..50a14aec1643b43bbab6e772c7c54279e71fe516 100644 --- a/crates/sidebar/src/sidebar.rs +++ b/crates/sidebar/src/sidebar.rs @@ -1715,7 +1715,7 @@ impl Sidebar { if to_remove.len() == workspaces.len() { multi_workspace.update(cx, |multi_workspace, cx| { - multi_workspace.create_empty_workspace(window, cx).detach(); + multi_workspace.create_empty_workspace(window, cx); }); } diff --git a/crates/workspace/src/multi_workspace.rs b/crates/workspace/src/multi_workspace.rs index b3328c66654dd6e88e9f2ecd6c19b544de65e255..acc554fdd02ec08c39fc12b434f7b19d60e166b9 100644 --- a/crates/workspace/src/multi_workspace.rs +++ b/crates/workspace/src/multi_workspace.rs @@ -741,11 +741,7 @@ impl MultiWorkspace { workspace } - pub fn create_empty_workspace( - &mut self, - window: &mut Window, - cx: &mut Context, - ) -> Task<()> { + pub fn create_empty_workspace(&mut self, window: &mut Window, cx: &mut Context) { let app_state = self.workspace().read(cx).app_state().clone(); let project = Project::local( app_state.client.clone(), @@ -758,9 +754,19 @@ impl MultiWorkspace { cx, ); let new_workspace = cx.new(|cx| Workspace::new(None, project, app_state, window, cx)); - self.activate(new_workspace.clone(), window, cx); + self.activate(new_workspace, window, cx); + } - let weak_workspace = new_workspace.downgrade(); + #[cfg(any(test, feature = "test-support"))] + pub fn create_test_workspace( + &mut self, + window: &mut Window, + cx: &mut Context, + ) -> Task<()> { + self.create_empty_workspace(window, cx); + + let workspace = self.workspace().clone(); + let weak_workspace = workspace.downgrade(); let db = crate::persistence::WorkspaceDb::global(cx); cx.spawn_in(window, async move |this, cx| { let workspace_id = db.next_id().await.unwrap(); @@ -785,15 +791,6 @@ impl MultiWorkspace { }) } - #[cfg(any(test, feature = "test-support"))] - pub fn create_test_workspace( - &mut self, - window: &mut Window, - cx: &mut Context, - ) -> Task<()> { - self.create_empty_workspace(window, cx) - } - pub fn remove( &mut self, workspace: &Entity, diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index d5e8383c4bed4f6d762f0062dc72f5f09991b9b8..d4b1cebca6b6b71b9efd3394f639a5cb32384682 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -6290,6 +6290,7 @@ impl Workspace { self.database_id } + #[cfg(any(test, feature = "test-support"))] pub(crate) fn set_database_id(&mut self, id: WorkspaceId) { self.database_id = Some(id); }