summaryrefslogtreecommitdiffstats
path: root/pkg/gui/quitting.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-07-18 19:41:13 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-07-18 20:00:48 +1000
commit845c80721f8f0445b0abe39ee381a6feecf158a2 (patch)
treea2cfbd2c2710db01c95e3354923f831959da42d2 /pkg/gui/quitting.go
parent0e65db10d85304c2ab8418e5219c267277a9c886 (diff)
Decouple escaping from quittingv0.20.10
When a user is not entering text into a prompt, the 'q' key should immediately quit the application. On the other hand, the 'esc' key should cancel/close/go-back to the previous context. If we're at the surface level (nothing to cancel/close) and the user hits the escape key, the default behaviour is to close the app, however we now have a `quitOnTopLevelReturn` config key to override this. I actually think from the beginning we should have made this config option default to false rather than true which is the default this PR gives it, but I don't want to anger too many people familiar with the existing behaviour.
Diffstat (limited to 'pkg/gui/quitting.go')
-rw-r--r--pkg/gui/quitting.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkg/gui/quitting.go b/pkg/gui/quitting.go
index f9ad00177..4a7bba23a 100644
--- a/pkg/gui/quitting.go
+++ b/pkg/gui/quitting.go
@@ -34,6 +34,14 @@ func (gui *Gui) handleQuit(g *gocui.Gui, v *gocui.View) error {
return gui.quit(v)
}
+func (gui *Gui) handleTopLevelReturn(g *gocui.Gui, v *gocui.View) error {
+ if gui.Config.GetUserConfig().GetBool("quitOnTopLevelReturn") {
+ return gui.handleQuit(g, v)
+ }
+
+ return nil
+}
+
func (gui *Gui) quit(v *gocui.View) error {
if gui.State.Updating {
return gui.createUpdateQuitConfirmation(gui.g, v)