From bfc8d0a7d3ea39b19b3367444f98768995eb9e32 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Fri, 12 Jul 2019 22:28:44 +0530 Subject: [PATCH] Termux improvement: toggle nav-as-you-type 2 changes: - Toggle nav-as-you-type with left single/double click below last entry - Handle mouse events when filter is on --- README.md | 3 ++- src/nnn.c | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cfb7ab91..14232cfe 100644 --- 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 diff --git a/src/nnn.c b/src/nnn.c index d5262a5f..03c60db1 100644 --- 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 */