diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-19 08:26:22 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-23 14:29:18 +1000 |
commit | 9a2dc3fe150a03ccb4f086b05d8a8249c9e6c37f (patch) | |
tree | 7dd6da3dbf1907a04b1b865973f9dfdfd0ccc10e /pkg/gui/context.go | |
parent | f0c3d3fc4d43f5b7487540d5c0356f62b3b2997d (diff) |
stop crash due to context stack not being initialized
Diffstat (limited to 'pkg/gui/context.go')
-rw-r--r-- | pkg/gui/context.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/pkg/gui/context.go b/pkg/gui/context.go index 522932664..3c5dedde5 100644 --- a/pkg/gui/context.go +++ b/pkg/gui/context.go @@ -208,12 +208,17 @@ func (gui *Gui) renderContextStack() string { return result } -func (gui *Gui) currentContext() Context { - return gui.State.ContextStack[len(gui.State.ContextStack)-1] +func (gui *Gui) currentContextKey() string { + // on startup the stack can be empty so we'll return an empty string in that case + if len(gui.State.ContextStack) == 0 { + return "" + } + + return gui.State.ContextStack[len(gui.State.ContextStack)-1].GetKey() } -func (gui *Gui) createContextTree() { - gui.Contexts = ContextTree{ +func (gui *Gui) contextTree() ContextTree { + return ContextTree{ Status: SimpleContextNode{ Context: BasicContext{ OnFocus: gui.handleStatusSelect, @@ -329,8 +334,10 @@ func (gui *Gui) createContextTree() { }, }, } +} - gui.State.ViewContextMap = map[string]Context{ +func (gui *Gui) initialViewContextMap() map[string]Context { + return map[string]Context{ "status": gui.Contexts.Status.Context, "files": gui.Contexts.Files.Context, "branches": gui.Contexts.Branches.Context, @@ -344,7 +351,9 @@ func (gui *Gui) createContextTree() { "main": gui.Contexts.Normal.Context, "secondary": gui.Contexts.Normal.Context, } +} +func (gui *Gui) setInitialViewContexts() { // arguably we should only have our ViewContextMap and we should do away with // contexts on views, or vice versa for viewName, context := range gui.State.ViewContextMap { |