From 61f9c2d3ce66d36501dc530e0eec4b1f471c24d0 Mon Sep 17 00:00:00 2001 From: Dave Gallant Date: Sat, 4 Jul 2020 16:51:29 -0400 Subject: [PATCH] Simplify scroll (#14) --- cui/keybindings.go | 3 +++ cui/main.go | 1 + cui/scroll.go | 15 +++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cui/keybindings.go b/cui/keybindings.go index 9bf6fd0..537695e 100644 --- a/cui/keybindings.go +++ b/cui/keybindings.go @@ -16,6 +16,9 @@ func keybindings(g *gocui.Gui) error { if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil { 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 { return err } diff --git a/cui/main.go b/cui/main.go index eaaee9e..c9fc4f2 100644 --- a/cui/main.go +++ b/cui/main.go @@ -38,6 +38,7 @@ func openFeed(g *gocui.Gui, v *gocui.View) error { fmt.Fprintln(ov, "-", item.Title) } nextView(g, ov) + displayDescription(g, ov) return nil } diff --git a/cui/scroll.go b/cui/scroll.go index 5ca04ed..b7e087c 100644 --- a/cui/scroll.go +++ b/cui/scroll.go @@ -4,19 +4,26 @@ import ( "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 { ox, oy := v.Origin() if oy+direction >= len(v.BufferLines())-1 { + // hit bottom 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 } func cursorDown(g *gocui.Gui, v *gocui.View) error { - err := scroll(g, v, 1) + err := scroll(v, 1) if g.CurrentView().Title == "Items" { 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 { - err := scroll(g, v, -1) + err := scroll(v, -1) if g.CurrentView().Title == "Items" { displayDescription(g, v) }