summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-03-08 22:01:45 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-03-08 22:01:45 +0900
commitfa0aa5510d1d78a80363e053f2db5502f9bac416 (patch)
tree700c775ee5165f915310b0b7e577a26c52757f5c
parenteec557b6aaf318bd20fe8abe3e5d341e1ba08d27 (diff)
Kill preview process when hiding the preview window
via toggle-preview, hide-preview, or change-preview-window
-rw-r--r--src/terminal.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/terminal.go b/src/terminal.go
index daf2cf51..b8358891 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -3382,6 +3382,9 @@ func (t *Terminal) Loop() {
// Discard the preview content so that it won't accidentally appear
// when preview window is re-enabled and previewDelay is triggered
t.previewer.lines = nil
+
+ // Also kill the preview process if it's still running
+ t.cancelPreview()
}
}
case actTogglePreviewWrap:
@@ -3988,11 +3991,18 @@ func (t *Terminal) Loop() {
// Full redraw
if !currentPreviewOpts.sameLayout(t.previewOpts) {
- wasHidden := t.pwindow == nil
+ // Preview command can be running in the background if the size of
+ // the preview window is 0 but not 'hidden'
+ wasHidden := currentPreviewOpts.hidden
updatePreviewWindow(false)
if wasHidden && t.hasPreviewWindow() {
+ // Restart
refreshPreview(t.previewOpts.command)
+ } else if t.previewOpts.hidden {
+ // Cancel
+ t.cancelPreview()
} else {
+ // Refresh
req(reqPreviewRefresh)
}
} else if !currentPreviewOpts.sameContentLayout(t.previewOpts) {