From 41d414c2fc262be7ccb6572919f0c3fe6ae3338f Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Thu, 6 May 2021 12:34:31 +0530 Subject: [PATCH] Skip a complete erase on redraw() --- src/nnn.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 6d0b828d..0d15e802 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -5752,18 +5752,19 @@ static void redraw(char *path) DPRINTF_S(__func__); - /* Clear screen */ - erase(); - - /* Enforce scroll/cursor invariants */ - move_cursor(cur, 1); - /* Fail redraw if < than 10 columns, context info prints 10 chars */ - if (ncols < MIN_DISPLAY_COLS) { + /* Note: this should be before the Fast redraw, but we optimize */ + if (ncols <= MIN_DISPLAY_COLS) { + erase(); printmsg(messages[MSG_FEW_COLUMNS]); return; } + move(0, 0); + + /* Enforce scroll/cursor invariants */ + //move_cursor(cur, 1); + //DPRINTF_D(cur); DPRINTF_S(path); @@ -5824,11 +5825,13 @@ static void redraw(char *path) ncols = adjust_cols(ncols); + clrtoeol(); /* Clear to end of first line */ + + move(1, 0); /* Go to first entry */ - if (curscroll > 0) { - move(1, 0); + if (curscroll > 0) addch('^'); - } + clrtoeol(); /* Clear to end of second line */ move(2, 0); @@ -5847,6 +5850,8 @@ static void redraw(char *path) g_state.dircolor = 0; } + clrtobot(); /* clear to end of screen */ + /* Go to first entry */ if (i < ndents) { move(xlines - 2, 0);