diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index dbad09afdacdc7..7099d06994e3d2 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -2059,6 +2059,11 @@ impl GitPanel { let Some(entry) = self.entries.get(ix).and_then(|e| e.status_entry()) else { return; }; + let stage_title = if entry.status.is_staged() == Some(true) { + "Unstage File" + } else { + "Stage File" + }; let revert_title = if entry.status.is_deleted() { "Restore file" } else if entry.status.is_created() { @@ -2068,7 +2073,7 @@ impl GitPanel { }; let context_menu = ContextMenu::build(window, cx, |context_menu, _, _| { context_menu - .action("Stage File", ToggleStaged.boxed_clone()) + .action(stage_title, ToggleStaged.boxed_clone()) .action(revert_title, git::RestoreFile.boxed_clone()) .separator() .action("Open Diff", Confirm.boxed_clone()) @@ -2312,15 +2317,17 @@ impl Render for GitPanel { .size_full() .overflow_hidden() .bg(ElevationIndex::Surface.bg(cx)) - .children(self.render_panel_header(window, cx)) .child(if has_entries { - self.render_entries(has_write_access, window, cx) + v_flex() + .size_full() + .children(self.render_panel_header(window, cx)) + .child(self.render_entries(has_write_access, window, cx)) + .children(self.render_previous_commit(cx)) + .child(self.render_commit_editor(window, cx)) .into_any_element() } else { self.render_empty_state(cx).into_any_element() }) - .children(self.render_previous_commit(cx)) - .child(self.render_commit_editor(window, cx)) .children(self.context_menu.as_ref().map(|(menu, position, _)| { deferred( anchored()