diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-01-31 08:07:34 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-01-31 08:27:49 +1100 |
commit | 64782a433e6de09ed797266f463b2552ee6ae1c7 (patch) | |
tree | bebbbf5af082e1bedaa743ab20851681efcf599c /pkg/gui/commit_files_panel.go | |
parent | 44edb49a6e9c24128a14517f60d1a75f70a539f8 (diff) |
fix segfault on line by line panel
The state object is sometimes undefined in the onclick method of the
line by line panel. Because we set it to nil in a bunch of places,
I've decided to just change the main context to 'normal' before setting
it to nil anywhere. That way the keybindings for the line by line panel
won't get executed and we won't get a segfault.
Diffstat (limited to 'pkg/gui/commit_files_panel.go')
-rw-r--r-- | pkg/gui/commit_files_panel.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/pkg/gui/commit_files_panel.go b/pkg/gui/commit_files_panel.go index 42afc6c94..b4a08625a 100644 --- a/pkg/gui/commit_files_panel.go +++ b/pkg/gui/commit_files_panel.go @@ -29,7 +29,9 @@ func (gui *Gui) handleCommitFileSelect(g *gocui.Gui, v *gocui.View) error { } gui.getMainView().Title = "Patch" - gui.State.Panels.LineByLine = nil + if gui.currentViewName() == "commitFiles" { + gui.handleEscapeLineByLinePanel() + } commitFile := gui.getSelectedCommitFile(g) if commitFile == nil { @@ -194,9 +196,7 @@ func (gui *Gui) enterCommitFile(selectedLineIdx int) error { } } - if err := gui.changeMainViewsContext("patch-building"); err != nil { - return err - } + gui.changeMainViewsContext("patch-building") if err := gui.switchFocus(gui.g, gui.getCommitFilesView(), gui.getMainView()); err != nil { return err } |