diff options
Diffstat (limited to 'tui/layout.go')
| -rw-r--r-- | tui/layout.go | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/tui/layout.go b/tui/layout.go index 1835d72..ede0fa6 100644 --- a/tui/layout.go +++ b/tui/layout.go @@ -43,37 +43,8 @@ type textRun struct { hasCursor bool } -type ScrollState struct { - at string - offset int - absolute int - atFirst bool - atLast bool -} - var Selected string -func (s *ScrollState) ToStart() { - *s = ScrollState {} -} - -func (s *ScrollState) AtFirst() bool { - return s.atFirst -} - -func (s *ScrollState) AtLast() bool { - return s.atLast -} - -func (s *ScrollState) Scroll(amnt int) { - s.offset += amnt - s.absolute += amnt -} - -func (s *ScrollState) Get() int { - return s.absolute -} - var layout struct { front map[string]*Box back map[string]*Box @@ -319,12 +290,7 @@ func (b *Box) computePositions(axis int) { if b.Dir.reverse() { p = b.computedSize[axis] - p } - b.Scroll.absolute = p - if !b.Dir.reverse() { - b.Scroll.absolute += b.Scroll.offset - } else { - b.Scroll.absolute += b.Scroll.offset - } + b.Scroll.absolute = p + b.Scroll.offset } if !b.Dir.reverse() { @@ -467,10 +433,12 @@ func (b *Box) mouseEvents(ev MouseEvent) { bev.Y -= b.computedRect.min[1] bev.Pressed = false bev.Released = false + bev.Scroll = 0 if bev.X >= 0 && bev.Y >= 0 && bev.X < b.computedSize[0] && bev.Y < b.computedSize[1] { bev.Pressed = ev.Pressed bev.Released = ev.Released + bev.Scroll = ev.Scroll } b.mouseEvent = bev for _, c := range b.children { |
