From 69865574e8414d2677f69d49136eb78bf57461b2 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 May 2022 12:27:36 +0100 Subject: [PATCH] Redraw market without fetch on resize. --- cmd/mop/main.go | 11 ++++++++++- screen.go | 15 ++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/cmd/mop/main.go b/cmd/mop/main.go index 6a696ec..4636339 100644 --- a/cmd/mop/main.go +++ b/cmd/mop/main.go @@ -60,6 +60,7 @@ func mainLoop(screen *mop.Screen, profile *mop.Profile) { paused := false upDownJump := profile.UpDownJump redrawQuotesFlag := false + redrawMarketFlag := false go func() { for { @@ -137,8 +138,12 @@ loop: case termbox.EventResize: screen.Resize() if !showingHelp { - screen.Draw(market) + //screen.Draw(market) + //redrawQuotesFlag = true + //screen.Draw(market) redrawQuotesFlag = true + redrawMarketFlag = true + //screen.DrawOldQuotes(quotes) } else { screen.Draw(help) } @@ -176,6 +181,10 @@ loop: screen.DrawOldQuotes(quotes) redrawQuotesFlag = false } + if redrawMarketFlag && len(keyboardQueue) == 0 { + screen.Draw(market) + redrawMarketFlag = false + } } } diff --git a/screen.go b/screen.go index 5e62329..1d6cdb9 100644 --- a/screen.go +++ b/screen.go @@ -96,8 +96,8 @@ func (screen *Screen) IncreaseOffset(n int) { if screen.offset+n <= screen.max { screen.offset += n } else if screen.max > screen.height { - screen.offset = screen.max - } + screen.offset = screen.max + } } // Decrease the offset for scrolling feature by n @@ -114,9 +114,9 @@ func (screen *Screen) ScrollTop() { } func (screen *Screen) ScrollBottom() { - if screen.max > screen.height { - screen.offset = screen.max - } + if screen.max > screen.height { + screen.offset = screen.max + } } func (screen *Screen) DrawOldQuotes(quotes *Quotes) { @@ -124,6 +124,11 @@ func (screen *Screen) DrawOldQuotes(quotes *Quotes) { termbox.Flush() } +func (screen *Screen) DrawOldMarket(market *Market) { + screen.draw(screen.layout.Market(market), false) + termbox.Flush() +} + // Draw accepts variable number of arguments and knows how to display the // market data, stock quotes, current time, and an arbitrary string. func (screen *Screen) Draw(objects ...interface{}) *Screen {