diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-16 14:00:27 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-21 22:07:14 +1100 |
commit | 8aa1062e0693289188c2fb705f2fa15d014f07a0 (patch) | |
tree | 4a6eb1101af72b22f51834cf955ad82fee374070 /pkg/gui/view_helpers.go | |
parent | 7e0a8f235ef6971a98fba9c91c7fa159ca842180 (diff) |
extract out some logic for list views
Diffstat (limited to 'pkg/gui/view_helpers.go')
-rw-r--r-- | pkg/gui/view_helpers.go | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index a8e4872e1..c23bf3e47 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -101,7 +101,7 @@ func (gui *Gui) newLineFocused(g *gocui.Gui, v *gocui.View) error { case "status": return gui.handleStatusSelect(g, v) case "files": - return gui.handleFileSelect(g, v, false) + return gui.handleFileSelect(g, v) case "branches": return gui.handleBranchSelect(g, v) case "commits": @@ -315,6 +315,11 @@ func (gui *Gui) getCommitFilesView() *gocui.View { return v } +func (gui *Gui) getMenuView() *gocui.View { + v, _ := gui.g.View("menu") + return v +} + func (gui *Gui) trimmedContent(v *gocui.View) string { return strings.TrimSpace(v.Buffer()) } @@ -362,19 +367,17 @@ func (gui *Gui) generalFocusLine(lineNumber int, bottomLine int, v *gocui.View) return nil } -func (gui *Gui) changeSelectedLine(line *int, total int, up bool) { - if up { - if *line == -1 || *line == 0 { - return - } - - *line-- +func (gui *Gui) changeSelectedLine(line *int, total int, change int) { + // TODO: find out why we're doing this + if *line == -1 { + return + } + if *line+change < 0 { + *line = 0 + } else if *line+change >= total { + *line = total - 1 } else { - if *line == -1 || *line == total-1 { - return - } - - *line++ + *line += change } } |