summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2019-11-10 22:28:41 +1100
committerJesse Duffield <jessedduffield@gmail.com>2019-11-10 22:28:41 +1100
commitfb7929a3921ad5eaae75089b7c8a9200fa453ad1 (patch)
tree0ec532f6cd640b76b95bc75400f42574b05e2f8a
parente6ee73515d4498c7dcaae53d011ec78b1136d4b7 (diff)
support clicking through to commit files panelv0.10
-rw-r--r--pkg/gui/commits_panel.go21
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 {