diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-10 22:28:41 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-10 22:32:13 +1100 |
commit | e174e5254dc59fc684710e22718c4dab5ffec55e (patch) | |
tree | 0ec532f6cd640b76b95bc75400f42574b05e2f8a /pkg | |
parent | de5bcb8b9c65e63a992ce278e63f0f8e31a57969 (diff) |
support clicking through to commit files panel
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/gui/commits_panel.go | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/pkg/gui/commits_panel.go b/pkg/gui/commits_panel.go index d46827598..d58e89ebf 100644 --- a/pkg/gui/commits_panel.go +++ b/pkg/gui/commits_panel.go @@ -24,11 +24,24 @@ func (gui *Gui) getSelectedCommit(g *gocui.Gui) *commands.Commit { } func (gui *Gui) handleCommitsClick(g *gocui.Gui, v *gocui.View) error { - itemCount := len(gui.State.Commits) - handleSelect := gui.handleCommitSelect - selectedLine := &gui.State.Panels.Commits.SelectedLine + if gui.popupPanelFocused() { + return nil + } - return gui.handleClick(v, itemCount, selectedLine, handleSelect) + prevSelectedLineIdx := gui.State.Panels.Commits.SelectedLine + newSelectedLineIdx := v.SelectedLineIdx() + + if newSelectedLineIdx > len(gui.State.Commits)-1 { + return gui.handleCommitSelect(gui.g, v) + } + + gui.State.Panels.Commits.SelectedLine = newSelectedLineIdx + + if prevSelectedLineIdx == newSelectedLineIdx && gui.currentViewName() == v.Name() { + return gui.handleSwitchToCommitFilesPanel(gui.g, v) + } else { + return gui.handleCommitSelect(gui.g, v) + } } func (gui *Gui) handleCommitSelect(g *gocui.Gui, v *gocui.View) error { |