@@ -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);
});
}
@@ -741,11 +741,7 @@ impl MultiWorkspace {
workspace
}
- pub fn create_empty_workspace(
- &mut self,
- window: &mut Window,
- cx: &mut Context<Self>,
- ) -> Task<()> {
+ pub fn create_empty_workspace(&mut self, window: &mut Window, cx: &mut Context<Self>) {
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<Self>,
+ ) -> 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<Self>,
- ) -> Task<()> {
- self.create_empty_workspace(window, cx)
- }
-
pub fn remove(
&mut self,
workspace: &Entity<Workspace>,
@@ -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);
}