From e28f5aa45baf20ffdba469e11a998d3016c8cb42 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 11 Aug 2024 14:48:52 +0900 Subject: [PATCH] Make sure preview command is not run before Terminal is ready --- src/terminal.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/terminal.go b/src/terminal.go index bbccf1c6..29df02b2 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -382,6 +382,7 @@ const ( reqRedrawPreviewLabel reqClose reqPrintQuery + reqPreviewReady reqPreviewEnqueue reqPreviewDisplay reqPreviewRefresh @@ -3469,6 +3470,7 @@ func (t *Terminal) Loop() error { go func() { var version int64 stop := false + t.previewBox.WaitFor(reqPreviewReady) for { var items []*Item var commandTemplate string @@ -3497,6 +3499,9 @@ func (t *Terminal) Loop() error { if stop { break } + if items == nil { + continue + } version++ // We don't display preview window if no match if items[0] != nil { @@ -3738,6 +3743,9 @@ func (t *Terminal) Loop() error { t.printHeader() case reqActivate: t.suppress = false + if t.hasPreviewer() { + t.previewBox.Set(reqPreviewReady, nil) + } case reqRedrawBorderLabel: t.printLabel(t.border, t.borderLabel, t.borderLabelOpts, t.borderLabelLen, t.borderShape, true) case reqRedrawPreviewLabel: