From 337ab2a276325556e0ac4ff68aef6ab042a86466 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sun, 19 Apr 2026 22:26:37 +0200 Subject: [PATCH] Preserve commit message when quitting while the commit message panel is open This isn't possible with the default quit binding ('q'), but there's an alternative binding (ctrl-c) that does work while the panel is open; also, users can rebind quit to something like ctrl-q. --- pkg/gui/controllers/commit_description_controller.go | 6 ++++++ pkg/gui/controllers/commit_message_controller.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/pkg/gui/controllers/commit_description_controller.go b/pkg/gui/controllers/commit_description_controller.go index 24653c767..8ffcb4f58 100644 --- a/pkg/gui/controllers/commit_description_controller.go +++ b/pkg/gui/controllers/commit_description_controller.go @@ -91,6 +91,12 @@ func (self *CommitDescriptionController) GetOnFocus() func(types.OnFocusOpts) { } } +func (self *CommitDescriptionController) GetOnQuit() func() { + return func() { + self.c.Helpers().Commits.PreserveCommitMessage() + } +} + func (self *CommitDescriptionController) switchToCommitMessage() error { self.c.Context().Replace(self.c.Contexts().CommitMessage) return nil diff --git a/pkg/gui/controllers/commit_message_controller.go b/pkg/gui/controllers/commit_message_controller.go index e9ff1bc67..993513987 100644 --- a/pkg/gui/controllers/commit_message_controller.go +++ b/pkg/gui/controllers/commit_message_controller.go @@ -82,6 +82,12 @@ func (self *CommitMessageController) GetOnFocusLost() func(types.OnFocusLostOpts } } +func (self *CommitMessageController) GetOnQuit() func() { + return func() { + self.c.Helpers().Commits.PreserveCommitMessage() + } +} + func (self *CommitMessageController) Context() types.Context { return self.context() }