Experimental: guards to reduce repeat screen redraws

This commit is contained in:
Arun Prakash Jana 2020-04-16 17:45:58 +05:30
parent 37ebf8054f
commit ddaddcaf21
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -4917,8 +4917,6 @@ static void redraw(char *path)
xlines = LINES; xlines = LINES;
xcols = COLS; xcols = COLS;
DPRINTF_S(__FUNCTION__);
int ncols = (xcols <= PATH_MAX) ? xcols : PATH_MAX; int ncols = (xcols <= PATH_MAX) ? xcols : PATH_MAX;
int onscreen = xlines - 4; int onscreen = xlines - 4;
int i; int i;
@ -4932,6 +4930,8 @@ static void redraw(char *path)
return draw_line(path, ncols); return draw_line(path, ncols);
} }
DPRINTF_S(__FUNCTION__);
/* Clear screen */ /* Clear screen */
erase(); erase();
@ -5141,7 +5141,9 @@ begin:
#endif #endif
while (1) { while (1) {
redraw(path); /* Do not do a double redraw in filterentries */
if ((presel != FILTER) || !filterset())
redraw(path);
/* Display a one-time message */ /* Display a one-time message */
if (listpath && (g_states & STATE_MSG)) { if (listpath && (g_states & STATE_MSG)) {
@ -5667,8 +5669,10 @@ nochange:
/* In case of successful operation, reload contents */ /* In case of successful operation, reload contents */
/* Continue in type-to-nav mode, if enabled */ /* Continue in type-to-nav mode, if enabled */
if ((cfg.filtermode || filterset()) && !refresh) if ((cfg.filtermode || filterset()) && !refresh) {
break; presel = FILTER;
goto nochange;
}
/* Save current */ /* Save current */
if (ndents) if (ndents)