From e1c889072192b1dea351403e083bb431d1fb7888 Mon Sep 17 00:00:00 2001 From: David Haukeness Date: Wed, 30 Oct 2019 09:54:26 -0600 Subject: [PATCH] updated to not scroll past the bottom of the chat --- main.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 04be52b..b1c289f 100644 --- a/main.go +++ b/main.go @@ -120,10 +120,15 @@ func scrollDOWN(v *gocui.View) error { } func scrollView(v *gocui.View, delta int) error { if v != nil { - v.Autoscroll = false + _, y := v.Size() ox, oy := v.Origin() - if err := v.SetOrigin(ox, oy+delta); err != nil { - return err + if oy+delta > strings.Count(v.ViewBuffer(), "\n")-y { + v.Autoscroll = true + } else { + v.Autoscroll = false + if err := v.SetOrigin(ox, oy+delta); err != nil { + return err + } } } return nil @@ -160,6 +165,13 @@ func initKeybindings() error { }); err != nil { return err } + if err := g.SetKeybinding("", gocui.KeyEsc, gocui.ModNone, + func(g *gocui.Gui, v *gocui.View) error { + autoScrollView("Chat") + return nil + }); err != nil { + return err + } if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { input, err := getInputString("Input")