nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit ddaddcaf218ea2b1600e72e344e8c8720cd03c97
parent 37ebf8054f4fd6cde9964557f7fbfb00c8460847
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Thu, 16 Apr 2020 17:45:58 +0530

Experimental: guards to reduce repeat screen redraws

Diffstat:
Msrc/nnn.c | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -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)