git: Fix cmd-enter (#25628)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Conrad Irwin
2025-02-25 23:07:55 -07:00
committed by GitHub
parent 08539b32d0
commit 7f214ed25a
4 changed files with 39 additions and 19 deletions
+6
View File
@@ -733,6 +733,12 @@
"ctrl-enter": "git::Commit"
}
},
{
"context": "GitDiff > Editor",
"bindings": {
"ctrl-enter": "git::Commit"
}
},
{
"context": "GitPanel > Editor",
"bindings": {
+9 -1
View File
@@ -739,7 +739,15 @@
"alt-down": "git_panel::FocusEditor",
"tab": "git_panel::FocusEditor",
"shift-tab": "git_panel::FocusEditor",
"escape": "git_panel::ToggleFocus"
"escape": "git_panel::ToggleFocus",
"cmd-enter": "git::Commit"
}
},
{
"context": "GitDiff > Editor",
"use_key_equivalents": true,
"bindings": {
"cmd-enter": "git::Commit"
}
},
{
+2 -12
View File
@@ -80,17 +80,6 @@ pub fn init(cx: &mut App) {
workspace.register_action(|workspace, _: &ToggleFocus, window, cx| {
workspace.toggle_panel_focus::<GitPanel>(window, cx);
});
// workspace.register_action(|workspace, _: &Commit, window, cx| {
// workspace.open_panel::<GitPanel>(window, cx);
// if let Some(git_panel) = workspace.panel::<GitPanel>(cx) {
// git_panel
// .read(cx)
// .commit_editor
// .focus_handle(cx)
// .focus(window);
// }
// });
},
)
.detach();
@@ -1116,8 +1105,9 @@ impl GitPanel {
.contains_focused(window, cx)
{
self.commit_changes(window, cx)
} else {
cx.propagate();
}
cx.propagate();
}
pub(crate) fn commit_changes(&mut self, window: &mut Window, cx: &mut Context<Self>) {
+22 -6
View File
@@ -627,6 +627,7 @@ impl Render for ProjectDiff {
div()
.track_focus(&self.focus_handle)
.key_context(if is_empty { "EmptyPane" } else { "GitDiff" })
.bg(cx.theme().colors().editor_background)
.flex()
.items_center()
@@ -873,11 +874,17 @@ impl Render for ProjectDiffToolbar {
.when(
button_states.unstage_all && !button_states.stage_all,
|el| {
el.child(Button::new("unstage-all", "Unstage All").on_click(
cx.listener(|this, _, window, cx| {
this.dispatch_panel_action(&UnstageAll, window, cx)
}),
))
el.child(
Button::new("unstage-all", "Unstage All")
.tooltip(Tooltip::for_action_title_in(
"Unstage all changes",
&UnstageAll,
&focus_handle,
))
.on_click(cx.listener(|this, _, window, cx| {
this.dispatch_panel_action(&UnstageAll, window, cx)
})),
)
},
)
.when(
@@ -889,6 +896,11 @@ impl Render for ProjectDiffToolbar {
div().child(
Button::new("stage-all", "Stage All")
.disabled(!button_states.stage_all)
.tooltip(Tooltip::for_action_title_in(
"Stage all changes",
&StageAll,
&focus_handle,
))
.on_click(cx.listener(|this, _, window, cx| {
this.dispatch_panel_action(&StageAll, window, cx)
})),
@@ -899,8 +911,12 @@ impl Render for ProjectDiffToolbar {
.child(
Button::new("commit", "Commit")
.disabled(!button_states.commit)
.tooltip(Tooltip::for_action_title_in(
"Commit",
&Commit,
&focus_handle,
))
.on_click(cx.listener(|this, _, window, cx| {
// todo this should open modal, not focus panel.
this.dispatch_action(&Commit, window, cx);
})),
),