From 0264ef094a79c828e72e03052b9969cd80b28d16 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 12 May 2017 23:06:43 +0000 Subject: [PATCH] Can scroll away full lines to clear them too. --- tty.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tty.c b/tty.c index 58a4028c..a03e9a0d 100644 --- a/tty.c +++ b/tty.c @@ -830,12 +830,25 @@ tty_clear_area(struct tty *tty, const struct window_pane *wp, u_int py, return; } + /* Full lines can be scrolled away to clear them. */ + if (px == 0 && + px + nx > tty->sx && + ny > 2 && + tty_term_has(tty->term, TTYC_CSR) && + tty_term_has(tty->term, TTYC_INDN)) { + tty_region(tty, py, py + ny - 1); + tty_margin_off(tty); + tty_putcode1(tty, TTYC_INDN, ny); + return; + } + /* * If margins are supported, can just scroll the area off to * clear it. */ if (nx > 2 && ny > 2 && + tty_term_has(tty->term, TTYC_CSR) && tty_use_margin(tty) && tty_term_has(tty->term, TTYC_INDN)) { tty_region(tty, py, py + ny - 1);