commit 41d414c2fc262be7ccb6572919f0c3fe6ae3338f
parent 0eeae6ee7b848d8972a03dea73587194ea8a59b7
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Thu, 6 May 2021 12:34:31 +0530
Skip a complete erase on redraw()
Diffstat:
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git 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);