Return "open in new window" as default in recent projects (#8798)

https://github.com/zed-industries/zed/assets/5518/8bbd13a7-9144-48b0-9bc8-6651725476f8

Closes https://github.com/zed-industries/zed/issues/8651

Reworks `recent_projects::OpenRecent` action with collab projects in mind:
* keep the "open in new window" behavior for corresponding menu and command entries
* use new, "reuse current window" behavior in the recent projects picker up in the toolbar

This way, old Zed behavior is not customizable, kept as original in all main use cases — so that projects shared via remote entities: a channel and a call, are never accidentally closed, breaking the sharing. 

Release Notes:

- Return "open in new window" as default in recent projects
This commit is contained in:
Jason Lee 2024-03-04 17:42:30 +08:00 committed by GitHub
parent 3a184bbadd
commit 538298378a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View File

@ -16,10 +16,14 @@ use workspace::{ModalView, Workspace, WorkspaceId, WorkspaceLocation, WORKSPACE_
#[derive(PartialEq, Clone, Deserialize, Default)]
pub struct OpenRecent {
#[serde(default)]
#[serde(default = "default_create_new_window")]
pub create_new_window: bool,
}
fn default_create_new_window() -> bool {
true
}
gpui::impl_actions!(projects, [OpenRecent]);
pub fn init(cx: &mut AppContext) {
@ -269,7 +273,7 @@ impl PickerDelegate for RecentProjectsDelegate {
workspace
.update(&mut cx, |workspace, cx| {
workspace.open_workspace_for_paths(
replace_current_window,
true,
candidate_paths,
cx,
)
@ -280,11 +284,7 @@ impl PickerDelegate for RecentProjectsDelegate {
}
})
} else {
workspace.open_workspace_for_paths(
replace_current_window,
candidate_paths,
cx,
)
workspace.open_workspace_for_paths(false, candidate_paths, cx)
}
} else {
Task::ready(Ok(()))

View File

@ -40,7 +40,7 @@ pub fn app_menus() -> Vec<Menu<'static>> {
MenuItem::action(
"Open Recent...",
recent_projects::OpenRecent {
create_new_window: false,
create_new_window: true,
},
),
MenuItem::separator(),