@@ -50,8 +50,8 @@ It runs on Linux, macOS, Raspberry Pi, BSD, Cygwin, Linux subsystem for Windows | |||||
- [Quickstart](#quickstart) | - [Quickstart](#quickstart) | ||||
- [Usage](#usage) | - [Usage](#usage) | ||||
- [Cmdline options](#cmdline-options) | - [Cmdline options](#cmdline-options) | ||||
- [Keyboard shortcuts](#keyboard-shortcuts) | |||||
- [Leader key](#leader-key) | |||||
- [Keyboard and mouse](#keyboard-and-mouse) | |||||
- [Leader key](#leader-key) | |||||
- [Contexts](#contexts) | - [Contexts](#contexts) | ||||
- [Context-specific color](#context-specific-color) | - [Context-specific color](#context-specific-color) | ||||
- [Selection](#selection) | - [Selection](#selection) | ||||
@@ -230,7 +230,7 @@ optional args: | |||||
-h show help | -h show help | ||||
``` | ``` | ||||
#### Keyboard shortcuts | |||||
#### Keyboard and mouse | |||||
Press <kbd>?</kbd> in `nnn` to see the list anytime. | Press <kbd>?</kbd> in `nnn` to see the list anytime. | ||||
@@ -270,7 +270,13 @@ Press <kbd>?</kbd> in `nnn` to see the list anytime. | |||||
Note: Help & settings, file details, media info and archive listing are shown in the PAGER. Use the PAGER-specific keys in these screens. | Note: Help & settings, file details, media info and archive listing are shown in the PAGER. Use the PAGER-specific keys in these screens. | ||||
#### Leader key | |||||
| Mouse click | Function | | |||||
|:---:| --- | | |||||
| Left single | Select context or entry | | |||||
| Left double | Select context or open file/directory | | |||||
| Middle single | Visit parent directory | | |||||
##### Leader key | |||||
The Leader key provides a powerful multi-functional navigation mechanism. It is case-sensitive and understands contexts, bookmarks and location shortcuts. | The Leader key provides a powerful multi-functional navigation mechanism. It is case-sensitive and understands contexts, bookmarks and location shortcuts. | ||||
@@ -874,7 +874,7 @@ static bool initcurses(void) | |||||
nonl(); | nonl(); | ||||
//intrflush(stdscr, FALSE); | //intrflush(stdscr, FALSE); | ||||
keypad(stdscr, TRUE); | keypad(stdscr, TRUE); | ||||
mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL); | |||||
mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED | BUTTON2_CLICKED, NULL); | |||||
curs_set(FALSE); /* Hide cursor */ | curs_set(FALSE); /* Hide cursor */ | ||||
start_color(); | start_color(); | ||||
use_default_colors(); | use_default_colors(); | ||||
@@ -3116,24 +3116,28 @@ nochange: | |||||
presel = 0; | presel = 0; | ||||
switch (sel) { | switch (sel) { | ||||
case SEL_CLICK: | |||||
if (getmouse(&event) != OK) | |||||
goto nochange; // fallthrough | |||||
case SEL_BACK: | case SEL_BACK: | ||||
dir = visit_parent(path, newpath, &presel); | |||||
if (!dir) | |||||
goto nochange; | |||||
// Handle right click to go to parent | |||||
if ((sel == SEL_BACK) | |||||
|| (sel == SEL_CLICK && event.bstate == BUTTON2_CLICKED)) { | |||||
dir = visit_parent(path, newpath, &presel); | |||||
if (!dir) | |||||
goto nochange; | |||||
/* Save last working directory */ | |||||
xstrlcpy(lastdir, path, PATH_MAX); | |||||
/* Save last working directory */ | |||||
xstrlcpy(lastdir, path, PATH_MAX); | |||||
/* Save history */ | |||||
xstrlcpy(lastname, xbasename(path), NAME_MAX + 1); | |||||
/* Save history */ | |||||
xstrlcpy(lastname, xbasename(path), NAME_MAX + 1); | |||||
xstrlcpy(path, dir, PATH_MAX); | |||||
xstrlcpy(path, dir, PATH_MAX); | |||||
setdirwatch(); | |||||
goto begin; | |||||
case SEL_CLICK: | |||||
if (getmouse(&event) != OK) | |||||
goto nochange; | |||||
setdirwatch(); | |||||
goto begin; | |||||
} | |||||
// Handle clicking on a context at the top: | // Handle clicking on a context at the top: | ||||
if (event.y == 0) { | if (event.y == 0) { | ||||