commit 99a6a2e23093e29c256957ebb1ac3ed20582241c
parent 5b0919af16d2abe00c15cbf20a8f2057eb9c485f
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sun, 7 Jun 2026 22:26:01 +0530
Use leaveok() to improve ncurses performance
Diffstat:
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -2436,6 +2436,7 @@ static bool initcurses(void *oldmask)
mouseinterval(0);
#endif
curs_set(FALSE); /* Hide cursor */
+ leaveok(stdscr, TRUE); /* Skip precise cursor placement during normal redraws */
char *colors = getenv(env_cfg[NNN_COLORS]);
@@ -3828,6 +3829,7 @@ static int filterentries(char *path, char *lastname)
cleartimeout();
curs_set(TRUE);
+ leaveok(stdscr, FALSE);
showfilter(ln);
while ((r = get_wch(ch)) != ERR) {
@@ -4034,6 +4036,7 @@ end:
copycurname();
curs_set(FALSE);
+ leaveok(stdscr, TRUE);
settimeout();
/* Return keys for navigation etc. */
@@ -4152,6 +4155,7 @@ static char *xreadline(const char *prefill, const char *prompt)
x = getcurx(stdscr);
curs_set(TRUE);
+ leaveok(stdscr, FALSE);
while (1) {
buf[len] = ' ';
@@ -4375,6 +4379,7 @@ static char *xreadline(const char *prefill, const char *prompt)
END:
curs_set(FALSE);
+ leaveok(stdscr, TRUE);
settimeout();
printmsg("");