From 52d428bd5a30308381200f16ae9790599ece6d15 Mon Sep 17 00:00:00 2001 From: hmmmmmmmm Date: Thu, 31 Jan 2019 10:15:31 +0000 Subject: [PATCH] List scrolls automatically. If the selected item is off the screen, the list will scroll up/down so that the item is visable. --- widgets/list.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/widgets/list.go b/widgets/list.go index 61c74e3..53d88b9 100644 --- a/widgets/list.go +++ b/widgets/list.go @@ -33,6 +33,12 @@ func (self *List) Draw(buf *Buffer) { point := self.Inner.Min + if self.SelectedRow >= uint(self.Inner.Max.Y)+self.topRow-2 { + self.topRow = self.SelectedRow-uint(self.Inner.Max.Y)+2 + } else if self.SelectedRow < self.topRow { + self.topRow = self.SelectedRow + } + for row := self.topRow; row < uint(len(self.Rows)) && point.Y < self.Inner.Max.Y; row++ { cells := ParseText(self.Rows[row], self.TextStyle) if self.WrapText {