]> Sergey Matveev's repositories - nnn.git/commitdiff
Termux improvement: toggle nav-as-you-type
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 12 Jul 2019 16:58:44 +0000 (22:28 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 12 Jul 2019 18:04:36 +0000 (23:34 +0530)
2 changes:
- Toggle nav-as-you-type with left single/double click below last entry
- Handle mouse events when filter is on

README.md
src/nnn.c

index cfb7ab91679fcccb316bde503afa8198974a3c49..14232cfe35d8575d4c4d5d7dd8ce5fa07324eeb9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -267,8 +267,9 @@ Note: Help & settings, file details, media info and archive listing are shown in
 |---| --- |
 | Left single on context number | Visit context |
 | Left single on top row after context numbers | Visit parent |
+| Left single/double after last entry | Toggle nav-as-you-type |
 | Left single | Select context or entry |
-| Left double | Select context or open file/directory |
+| Left double | Select context or open entry |
 
 ##### Leader key
 
index d5262a5ffddfabccffd741d49b3179c3aea45eb8..03c60db14f340a9e3967ab96ea110b698dc92c08 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1696,6 +1696,7 @@ static int filterentries(char *path)
 
                        printprompt(ln);
                        continue;
+               case KEY_MOUSE: // fallthrough
                case 27: /* Exit filter mode on Escape */
                        if (len == 1)
                                cur = oldcur;
@@ -3392,13 +3393,27 @@ nochange:
                        }
 #endif
 
-                       /* Handle clicking on a file */
-                       if (2 <= event.y && event.y < xlines - 2) {
+                       if (2 <= event.y && event.y < xlines - 2)
                                r = curscroll + (event.y - 2);
 
-                               if (r >= ndents)
+                       /* Toggle filter mode on left click on last line */
+                       if (event.y >= xlines - 2 || r >= ndents) {
+                               cfg.filtermode ^= 1;
+                               if (cfg.filtermode) {
+                                       presel = FILTER;
                                        goto nochange;
+                               }
+
+                               /* Start watching the directory */
+                               dir_changed = TRUE;
+
+                               if (ndents)
+                                       copycurname();
+                               goto begin;
+                       }
 
+                       /* Handle clicking on a file */
+                       if (2 <= event.y && event.y < xlines - 2) {
                                move_cursor(r, 1);
 
                                /*Single click just selects, double click also opens */