Simplify scroll (#14)

This commit is contained in:
Dave Gallant
2020-07-04 16:51:29 -04:00
committed by GitHub
parent 820255a18d
commit 61f9c2d3ce
3 changed files with 15 additions and 4 deletions

View File

@@ -16,6 +16,9 @@ func keybindings(g *gocui.Gui) error {
if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil { if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
return err return err
} }
if err := g.SetKeybinding("", gocui.KeyCtrlQ, gocui.ModNone, quit); err != nil {
return err
}
if err := g.SetKeybinding("feeds", gocui.KeyEnter, gocui.ModNone, openFeed); err != nil { if err := g.SetKeybinding("feeds", gocui.KeyEnter, gocui.ModNone, openFeed); err != nil {
return err return err
} }

View File

@@ -38,6 +38,7 @@ func openFeed(g *gocui.Gui, v *gocui.View) error {
fmt.Fprintln(ov, "-", item.Title) fmt.Fprintln(ov, "-", item.Title)
} }
nextView(g, ov) nextView(g, ov)
displayDescription(g, ov)
return nil return nil
} }

View File

@@ -4,19 +4,26 @@ import (
"github.com/jroimartin/gocui" "github.com/jroimartin/gocui"
) )
func scroll(g *gocui.Gui, v *gocui.View, direction int) error { func scroll(v *gocui.View, direction int) error {
if v != nil { if v != nil {
ox, oy := v.Origin() ox, oy := v.Origin()
if oy+direction >= len(v.BufferLines())-1 { if oy+direction >= len(v.BufferLines())-1 {
// hit bottom
return nil return nil
} }
v.SetOrigin(ox, oy+direction) if oy+direction < 0 {
// hit top
return nil
}
if err := v.SetOrigin(ox, oy+direction); err != nil {
return err
}
} }
return nil return nil
} }
func cursorDown(g *gocui.Gui, v *gocui.View) error { func cursorDown(g *gocui.Gui, v *gocui.View) error {
err := scroll(g, v, 1) err := scroll(v, 1)
if g.CurrentView().Title == "Items" { if g.CurrentView().Title == "Items" {
displayDescription(g, v) displayDescription(g, v)
} }
@@ -24,7 +31,7 @@ func cursorDown(g *gocui.Gui, v *gocui.View) error {
} }
func cursorUp(g *gocui.Gui, v *gocui.View) error { func cursorUp(g *gocui.Gui, v *gocui.View) error {
err := scroll(g, v, -1) err := scroll(v, -1)
if g.CurrentView().Title == "Items" { if g.CurrentView().Title == "Items" {
displayDescription(g, v) displayDescription(g, v)
} }