summaryrefslogtreecommitdiffstats
path: root/pkg/gui/context.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-08-19 08:26:22 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-08-23 14:29:18 +1000
commit9a2dc3fe150a03ccb4f086b05d8a8249c9e6c37f (patch)
tree7dd6da3dbf1907a04b1b865973f9dfdfd0ccc10e /pkg/gui/context.go
parentf0c3d3fc4d43f5b7487540d5c0356f62b3b2997d (diff)
stop crash due to context stack not being initialized
Diffstat (limited to 'pkg/gui/context.go')
-rw-r--r--pkg/gui/context.go19
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 {