Skip a complete erase on redraw()

This commit is contained in:
Arun Prakash Jana 2021-05-06 12:34:31 +05:30
parent 0eeae6ee7b
commit 41d414c2fc
No known key found for this signature in database
GPG Key ID: A75979F35C080412
1 changed files with 15 additions and 10 deletions

View File

@ -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);