From 02f45b679f65e5d862d0d4cb2d24b0116cd13796 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Tue, 6 Apr 2021 10:09:53 +1000 Subject: [PATCH] do not double-append contexts to the stack --- pkg/gui/context.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/gui/context.go b/pkg/gui/context.go index 60f834835..f20e3ff33 100644 --- a/pkg/gui/context.go +++ b/pkg/gui/context.go @@ -416,7 +416,10 @@ func (gui *Gui) pushContextDirect(c Context) error { } } gui.State.ContextManager.ContextStack = []Context{c} - } else { + } else if len(gui.State.ContextManager.ContextStack) == 0 || gui.State.ContextManager.ContextStack[len(gui.State.ContextManager.ContextStack)-1].GetKey() != c.GetKey() { + // Do not append if the one at the end is the same context (e.g. opening a menu from a menu) + // In that case we'll just close the menu entirely when the user hits escape. + // TODO: think about other exceptional cases gui.State.ContextManager.ContextStack = append(gui.State.ContextManager.ContextStack, c) }