From 9921b33679f6b0c9d2a609fe3112178ec40b8dd2 Mon Sep 17 00:00:00 2001 From: Tim Culverhouse Date: Mon, 31 Oct 2022 11:51:12 -0500 Subject: ui: invalidate ui when queuing redraw The QueueRedraw function should always be preceeded by a call to ui.Invalidate in order to make a redraw a occur. In one instance, this was not done and it was possible for the UI to not redraw itself (when a terminal closes, a UI redraw request is made but it is possible for the UI to not be invalidated as a result of the close). Move the call to Invalidate into the QueueRedraw function to ensure that every QueueRedraw call will redraw the screen. Fixes: https://todo.sr.ht/~rjarry/aerc/98 Signed-off-by: Tim Culverhouse Acked-by: Robin Jarry --- lib/ui/textinput.go | 1 - lib/ui/ui.go | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/ui/textinput.go b/lib/ui/textinput.go index c2acd546..8880c4c3 100644 --- a/lib/ui/textinput.go +++ b/lib/ui/textinput.go @@ -318,7 +318,6 @@ func (ti *TextInput) showCompletions() { } ti.completions, ti.prefix = ti.tabcomplete(ti.StringLeft()) ti.completeIndex = -1 - ti.Invalidate() QueueRedraw() } diff --git a/lib/ui/ui.go b/lib/ui/ui.go index ea181d33..bbaa3a29 100644 --- a/lib/ui/ui.go +++ b/lib/ui/ui.go @@ -17,9 +17,10 @@ type AercFuncMsg struct { Func func() } -// QueueRedraw sends a nil message into the MsgChannel. Nothing will handle this -// message, but a redraw will occur if the UI is marked as invalid +// QueueRedraw marks the UI as invalid and sends a nil message into the +// MsgChannel. Nothing will handle this message, but a redraw will occur func QueueRedraw() { + Invalidate() MsgChannel <- nil } -- cgit