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