aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-03-13 02:52:50 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-03-13 02:52:50 +0530
commitffc4b7e55d7b5e28808e6bdf2dd6fb7e14d441cd (patch)
tree2e0c82d296d61657b24b4752a9a69be5c7162ea7 /src
parenta747a1e267340aa0c44e1543143e2456e50ea65c (diff)
downloadnnn-ffc4b7e55d7b5e28808e6bdf2dd6fb7e14d441cd.tar.gz
Don't refresh in filter mode
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 0e39342..3e5d577 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -581,7 +581,8 @@ static inline void printmsg(const char *msg)
static void printwait(const char *msg, int *presel)
{
printmsg(msg);
- *presel = MSGWAIT;
+ if (presel)
+ *presel = MSGWAIT;
}
/* Kill curses and display error before exiting */
@@ -1473,12 +1474,16 @@ static int nextsel(int presel)
#endif
c = presel;
- if (c == 0 || c == '$') {
+ if (c == 0 || c == MSGWAIT) {
c = getch();
DPRINTF_D(c);
- if (presel == '$')
- c = CONTROL('L');
+ if (presel == MSGWAIT) {
+ if (cfg.filtermode)
+ c = FILTER;
+ else
+ c = CONTROL('L');
+ }
}
if (c == -1) {
@@ -3261,7 +3266,7 @@ nochange:
case SEL_DETAIL:
cfg.showdetail ^= 1;
cfg.showdetail ? (printptr = &printent_long) : (printptr = &printent);
- break;
+ continue;
case SEL_FSIZE:
cfg.sizeorder ^= 1;
cfg.mtimeorder = 0;
@@ -3467,8 +3472,9 @@ nochange:
g_crc = crc8fast((uchar *)dents, ndents * sizeof(struct entry));
copystartid = cur;
ncp = 0;
- printwait("selection on", &presel);
- goto nochange;
+ mvprintw(xlines - 1, 0, "selection on");
+ getch();
+ continue;
}
if (!ncp) { /* Handle range selection */
@@ -3504,10 +3510,9 @@ nochange:
dents[r].flags |= FILE_COPIED;
}
- mvprintw(xlines - 1, 0, "%d files selected\n",
- copyendid - copystartid + 1);
+ ncp = copyendid - copystartid + 1;
+ mvprintw(xlines - 1, 0, "%d files selected\n", ncp);
getch();
- continue; /* delayed message shown, now redraw */
}
if (copybufpos) { /* File path(s) written to the buffer */
@@ -3518,11 +3523,12 @@ nochange:
if (ncp) { /* Some files cherry picked */
mvprintw(xlines - 1, 0, "%d files selected\n", ncp);
getch();
- continue; /* delayed message shown, now redraw */
}
- } else
+ } else {
printwait("selection off", &presel);
- goto nochange;
+ goto nochange;
+ }
+ continue;
case SEL_COPYLIST:
if (copybufpos) {
showcplist();