]> Sergey Matveev's repositories - nnn.git/commitdiff
F5 to redraw (even with filter)
authorArun Prakash Jana <engineerarun@gmail.com>
Sat, 30 May 2020 17:55:01 +0000 (23:25 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sat, 30 May 2020 17:55:01 +0000 (23:25 +0530)
src/nnn.c
src/nnn.h

index e7ec31dc6200d8dec1471c82591508ba3680421d..69cf19d7ac6f804d39b281eaebf02fbaa64edefd 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -2569,18 +2569,23 @@ static int filterentries(char *path, char *lastname)
                        } else
                                continue;
                        // fallthrough
+               case KEY_F(5): // fallthrough
                case CONTROL('L'):
-                       if (*ch == CONTROL('L')) {
+                       if (*ch == CONTROL('L') || *ch == KEY_F(5)) {
                                if (wln[1]) {
                                        ln[REGEX_MAX - 1] = ln[1];
                                        ln[1] = wln[1] = '\0';
                                        len = 1;
                                        ndents = total;
-                               } else if (ln[REGEX_MAX - 1]) { /* Show the previous filter */
+                               } else if (*ch == CONTROL('L') && ln[REGEX_MAX - 1]) {
+                                       /* Show the previous filter */
                                        ln[1] = ln[REGEX_MAX - 1];
                                        ln[REGEX_MAX - 1] = '\0';
                                        len = mbstowcs(wln, ln, REGEX_MAX);
                                }
+
+                               if (*ch == KEY_F(5))
+                                       goto end;
                        }
 
                        /* Go to the top, we don't know if the hovered file will match the filter */
@@ -2597,17 +2602,8 @@ static int filterentries(char *path, char *lastname)
 #endif
                case 27: /* Exit filter mode on Escape and Alt+key */
                        if (handle_alt_key(ch) != ERR) {
-                               if (*ch == 27) { /* Handle Alt + Esc */
-                                       if (wln[1]) {
-                                               ln[REGEX_MAX - 1] = ln[1];
-                                               ln[1] = wln[1] = '\0';
-                                               ndents = total;
-                                               *ch = CONTROL('L');
-                                       }
-                               } else {
-                                       unget_wch(*ch);
-                                       *ch = CONTROL('S');
-                               }
+                               unget_wch(*ch);
+                               *ch = CONTROL('S');
                        }
                        goto end;
                }
@@ -4145,7 +4141,7 @@ static void show_help(const char *path)
                "a1-4  Context 1-4%-7c(Sh)Tab  Cycle context\n"
                  "c/  Filter%-17c^N  Toggle type-to-nav\n"
                "aEsc  Exit prompt%-12c^L  Redraw/clear prompt\n"
-                 "c0  Lock%-14cAlt+Esc  Clear filter, redraw\n"
+                 "c0  Lock%-19cF5  Redraw\n"
                  "c?  Help, conf%-13c^G  QuitCD\n"
                  "cq  Quit context%-7c^Q (Q)  Quit (with err)\n"
                "1FILES\n"
index a403f2973b3b76a40136bf2e8251ce5904dc4a55..81e5c1a87e91b8e648dff8783685a1e6c110cefd 100644 (file)
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -199,6 +199,7 @@ static struct key bindings[] = {
        { CONTROL('T'),   SEL_SORT },
        /* Redraw window */
        { CONTROL('L'),   SEL_REDRAW },
+       { KEY_F(5),       SEL_REDRAW },
        /* Select current file path */
        { CONTROL('J'),   SEL_SEL },
        { ' ',            SEL_SEL },