From 83b716e9a4fb853eaf380658dea6a1485e71dd01 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 6 May 2022 16:34:20 +0100 Subject: [PATCH] Scrolling fixes Ensure scrolling is not interrupted by quotes ticker. Redraw on Home/End. Prevent scrolling too far down beyond the quotes. --- cmd/mop/main.go | 4 +++- screen.go | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/mop/main.go b/cmd/mop/main.go index ec34be6..c0d14df 100644 --- a/cmd/mop/main.go +++ b/cmd/mop/main.go @@ -116,8 +116,10 @@ loop: redrawQuotesFlag = true } else if event.Key == termbox.KeyHome { screen.ScrollTop() + redrawQuotesFlag = true } else if event.Key == termbox.KeyEnd { screen.ScrollBottom(len(profile.Tickers)) + redrawQuotesFlag = true } } else if lineEditor != nil { if done := lineEditor.Handle(event); done { @@ -158,7 +160,7 @@ loop: case <-quotesQueue.C: if !showingHelp && !paused { - screen.Draw(quotes) + redrawQuotesFlag = true } case <-marketQueue.C: diff --git a/screen.go b/screen.go index fcc2e42..27f7118 100644 --- a/screen.go +++ b/screen.go @@ -92,7 +92,7 @@ func (screen *Screen) ClearLine(x int, y int) *Screen { // Increase the offset for scrolling feature by n // Takes number of tickers as max, so not scrolling down forever func (screen *Screen) IncreaseOffset(n int, max int) { - if screen.offset + n + 1 < max { + if screen.offset + n < max - screen.height + screen.headerLine{ screen.offset += n } }