diff --git a/crates/recent_projects/src/sidebar_recent_projects.rs b/crates/recent_projects/src/sidebar_recent_projects.rs index 4741c23049b34263c9b65d6c751675543d01c3df..cda4eb8d5595c7572292bb1b0b4fbc10c8e30ae5 100644 --- a/crates/recent_projects/src/sidebar_recent_projects.rs +++ b/crates/recent_projects/src/sidebar_recent_projects.rs @@ -21,6 +21,8 @@ use workspace::{ WorkspaceDb, WorkspaceId, notifications::DetachAndPromptErr, }; +use zed_actions::OpenRemote; + use crate::{highlights_for_path, icon_for_remote_connection, open_remote_project}; pub struct SidebarRecentProjects { @@ -409,16 +411,33 @@ impl PickerDelegate for SidebarRecentProjectsDelegate { .border_t_1() .border_color(cx.theme().colors().border_variant) .child({ - let open_action = workspace::Open { - create_new_window: false, - }; + let open_action = workspace::Open::default(); Button::new("open_local_folder", "Add Local Project") .key_binding(KeyBinding::for_action_in(&open_action, &focus_handle, cx)) - .on_click(cx.listener(move |_, _, window, cx| { - cx.emit(DismissEvent); + .on_click(move |_, window, cx| { window.dispatch_action(open_action.boxed_clone(), cx) - })) + }) }) + .child( + Button::new("open_remote_folder", "Add Remote Project") + .key_binding(KeyBinding::for_action( + &OpenRemote { + from_existing_connection: false, + create_new_window: false, + }, + cx, + )) + .on_click(|_, window, cx| { + window.dispatch_action( + OpenRemote { + from_existing_connection: false, + create_new_window: false, + } + .boxed_clone(), + cx, + ) + }), + ) .into_any(), ) }