From e9bc9ed5d568997026f3ef0d015cc75880e1b5fd Mon Sep 17 00:00:00 2001 From: CharlesChen0823 Date: Wed, 25 Sep 2024 16:00:17 +0800 Subject: [PATCH] remote_server: Fix opening a new remote project not refreshing the project panel (#18262) Currently, when open new remote project, project_panel not refresh, we must `ctrl-p` and select an file to refresh the project_panel. After that, project_panel will refresh when remote project window active. Release Notes: - Fixed remote projects not restoring previous locations and not refreshing the project panel on open. --- crates/workspace/src/workspace.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 4290e12105a3c7bc40f50de64a26aa9f773a749a..c7ba4ae3faa8942997bb18cd317838b06a13f638 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -5607,6 +5607,9 @@ pub fn join_dev_server_project( }) }); + let serialized_workspace: Option = + persistence::DB.workspace_for_dev_server_project(dev_server_project_id); + let workspace = if let Some(existing_workspace) = existing_workspace { existing_workspace } else { @@ -5620,10 +5623,7 @@ pub fn join_dev_server_project( ) .await?; - let serialized_workspace: Option = - persistence::DB.workspace_for_dev_server_project(dev_server_project_id); - - let workspace_id = if let Some(serialized_workspace) = serialized_workspace { + let workspace_id = if let Some(ref serialized_workspace) = serialized_workspace { serialized_workspace.id } else { persistence::DB.next_id().await? @@ -5650,10 +5650,13 @@ pub fn join_dev_server_project( } }; - workspace.update(&mut cx, |_, cx| { - cx.activate(true); - cx.activate_window(); - })?; + workspace + .update(&mut cx, |_, cx| { + cx.activate(true); + cx.activate_window(); + open_items(serialized_workspace, vec![], app_state, cx) + })? + .await?; anyhow::Ok(workspace) })