diff --git a/src/tui/app.rs b/src/tui/app.rs index be439ac8..c5f5ebe7 100644 --- a/src/tui/app.rs +++ b/src/tui/app.rs @@ -599,7 +599,7 @@ impl App { u16::try_from(u32::from(self.preview.cols) * u32::from(p) / 100).unwrap_or(u16::MAX) } }; - self.preview.scroll_x = usize::from(h_scroll.saturating_add(h_offset)); + self.preview.scroll_x = usize::from(h_scroll).saturating_add(usize::from(h_offset)); } ItemPreview::TextWithPos(t, preview_position) | ItemPreview::AnsiWithPos(t, preview_position) => self .preview diff --git a/src/tui/preview.rs b/src/tui/preview.rs index 51f2aa6c..a023e04f 100644 --- a/src/tui/preview.rs +++ b/src/tui/preview.rs @@ -602,8 +602,11 @@ impl Preview { terminate_plain_child(&child); let stdout = stdout_reader.join().unwrap_or_default(); let stderr = stderr_reader.join().unwrap_or_default(); - if let Ok(mut guard) = child.lock() { - guard.take(); + if let Ok(mut guard) = child.lock() + && let Some(mut child) = guard.take() + && status.is_none() + { + let _ = child.wait(); } let Some(status) = status else {