Skip to content

Commit 9a2e8f1

Browse files
committed
Clear quick view area before text render
1 parent a732dea commit 9a2e8f1

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

src/presentation/terminal/renderer.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,11 @@ impl TerminalRenderer {
309309
}
310310

311311
fn draw_quick_view(&mut self, qv: &QuickViewMode) {
312+
self.clear_quick_view_area();
312313
let rows = self.visible_rows();
313314
match qv {
314315
QuickViewMode::Text { lines, start, .. } => self.draw_text(lines, *start, rows),
315316
QuickViewMode::Image(bytes) => {
316-
self.clear_quick_view_area();
317317
let enc = iterm2img::from_bytes(bytes.to_vec())
318318
.width(self.columns as u64)
319319
.height(rows as u64)
@@ -558,6 +558,22 @@ mod tests {
558558
"expected clear command in quick view image output"
559559
);
560560
}
561+
562+
#[test]
563+
fn quick_view_text_clears_previous_content() {
564+
let (mut renderer, buffer) = TerminalRenderer::with_test_writer(40, 20);
565+
renderer.draw_quick_view(&QuickViewMode::Text {
566+
lines: vec!["first line".to_string()],
567+
start: 0,
568+
});
569+
let res = buffer.borrow();
570+
const CLEAR_SEQ: &[u8] = b"\x1b[J";
571+
assert!(
572+
res.windows(CLEAR_SEQ.len())
573+
.any(|window| window == CLEAR_SEQ),
574+
"expected clear command in quick view text output"
575+
);
576+
}
561577
}
562578

563579
impl Drop for TerminalRenderer {

0 commit comments

Comments
 (0)