mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
Middle click to visit parent dir
This commit is contained in:
parent
84dbec6f3d
commit
9dc3976533
14
README.md
14
README.md
|
@ -50,8 +50,8 @@ It runs on Linux, macOS, Raspberry Pi, BSD, Cygwin, Linux subsystem for Windows
|
|||
- [Quickstart](#quickstart)
|
||||
- [Usage](#usage)
|
||||
- [Cmdline options](#cmdline-options)
|
||||
- [Keyboard shortcuts](#keyboard-shortcuts)
|
||||
- [Leader key](#leader-key)
|
||||
- [Keyboard and mouse](#keyboard-and-mouse)
|
||||
- [Leader key](#leader-key)
|
||||
- [Contexts](#contexts)
|
||||
- [Context-specific color](#context-specific-color)
|
||||
- [Selection](#selection)
|
||||
|
@ -230,7 +230,7 @@ optional args:
|
|||
-h show help
|
||||
```
|
||||
|
||||
#### Keyboard shortcuts
|
||||
#### Keyboard and mouse
|
||||
|
||||
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.
|
||||
|
||||
#### 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.
|
||||
|
||||
|
|
38
src/nnn.c
38
src/nnn.c
|
@ -874,7 +874,7 @@ static bool initcurses(void)
|
|||
nonl();
|
||||
//intrflush(stdscr, FALSE);
|
||||
keypad(stdscr, TRUE);
|
||||
mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL);
|
||||
mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED | BUTTON2_CLICKED, NULL);
|
||||
curs_set(FALSE); /* Hide cursor */
|
||||
start_color();
|
||||
use_default_colors();
|
||||
|
@ -3116,24 +3116,28 @@ nochange:
|
|||
presel = 0;
|
||||
|
||||
switch (sel) {
|
||||
case SEL_BACK:
|
||||
dir = visit_parent(path, newpath, &presel);
|
||||
if (!dir)
|
||||
goto nochange;
|
||||
|
||||
/* Save last working directory */
|
||||
xstrlcpy(lastdir, path, PATH_MAX);
|
||||
|
||||
/* Save history */
|
||||
xstrlcpy(lastname, xbasename(path), NAME_MAX + 1);
|
||||
|
||||
xstrlcpy(path, dir, PATH_MAX);
|
||||
|
||||
setdirwatch();
|
||||
goto begin;
|
||||
case SEL_CLICK:
|
||||
if (getmouse(&event) != OK)
|
||||
goto nochange;
|
||||
goto nochange; // fallthrough
|
||||
case SEL_BACK:
|
||||
// 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 history */
|
||||
xstrlcpy(lastname, xbasename(path), NAME_MAX + 1);
|
||||
|
||||
xstrlcpy(path, dir, PATH_MAX);
|
||||
|
||||
setdirwatch();
|
||||
goto begin;
|
||||
}
|
||||
|
||||
// Handle clicking on a context at the top:
|
||||
if (event.y == 0) {
|
||||
|
|
Loading…
Reference in a new issue