From b8aa2d2c32e791c5d9dc97443f0c7e108b52a34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vlastimil=20Ov=C4=8D=C3=A1=C4=8D=C3=ADk?= Date: Fri, 1 Oct 2021 16:59:02 +0200 Subject: [PATCH] Minor refactoring tcell library from tui.go to tcell.go To prevent including tcell library in non-windows builds. --- src/tui/tcell.go | 9 ++++++--- src/tui/tui.go | 24 ++++++++++-------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/tui/tcell.go b/src/tui/tcell.go index 054c550..82c7566 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -120,8 +120,11 @@ func (a Attr) Merge(b Attr) Attr { return a | b } +// handle the following as private members of FullscreenRenderer instance +// they are declared here to prevent introducing tcell library in non-windows builds var ( - _screen tcell.Screen + _screen tcell.Screen + _prevMouseButton tcell.ButtonMask ) func (r *FullscreenRenderer) initScreen() { @@ -193,8 +196,8 @@ func (r *FullscreenRenderer) GetChar() Event { mod := ev.Modifiers() != 0 // since we dont have mouse down events (unlike LightRenderer), we need to track state in prevButton - prevButton, button := r.prevMouseButton, ev.Buttons() - r.prevMouseButton = button + prevButton, button := _prevMouseButton, ev.Buttons() + _prevMouseButton = button drag := prevButton == button switch { diff --git a/src/tui/tui.go b/src/tui/tui.go index 12359c6..eb09da4 100644 --- a/src/tui/tui.go +++ b/src/tui/tui.go @@ -5,8 +5,6 @@ import ( "os" "strconv" "time" - - "github.com/gdamore/tcell" ) // Types of user action @@ -399,22 +397,20 @@ type Window interface { } type FullscreenRenderer struct { - theme *ColorTheme - mouse bool - forceBlack bool - prevDownTime time.Time - prevMouseButton tcell.ButtonMask - clickY []int + theme *ColorTheme + mouse bool + forceBlack bool + prevDownTime time.Time + clickY []int } func NewFullscreenRenderer(theme *ColorTheme, forceBlack bool, mouse bool) Renderer { r := &FullscreenRenderer{ - theme: theme, - mouse: mouse, - forceBlack: forceBlack, - prevDownTime: time.Unix(0, 0), - prevMouseButton: tcell.ButtonNone, - clickY: []int{}} + theme: theme, + mouse: mouse, + forceBlack: forceBlack, + prevDownTime: time.Unix(0, 0), + clickY: []int{}} return r }