nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 9b0cf4a2b9729e7705a7d64ad5668da3cac84bc3
parent beabe624671fded77adc557f6f18fb0fb8115b58
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Fri, 12 Jul 2019 19:50:30 +0530

Support mouse scroll

This is limited to libncurses support of full mouse scrolling.
Ref: https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h3-Mouse-events

Diffstat:
Msrc/nnn.c | 22++++++++++++++++++++++
1 file changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -911,7 +911,12 @@ static bool initcurses(void) nonl(); //intrflush(stdscr, FALSE); keypad(stdscr, TRUE); +#if NCURSES_MOUSE_VERSION <= 1 mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED | BUTTON2_CLICKED, NULL); +#else + mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED | BUTTON2_CLICKED + | BUTTON4_PRESSED | BUTTON5_PRESSED, NULL); +#endif mouseinterval(400); curs_set(FALSE); /* Hide cursor */ start_color(); @@ -3355,6 +3360,23 @@ nochange: goto begin; } +#if NCURSES_MOUSE_VERSION > 1 + if (event.bstate == BUTTON4_PRESSED || event.bstate == BUTTON5_PRESSED) + { + /* Scroll up */ + if (event.bstate == BUTTON4_PRESSED && ndents) { + move_cursor((cur + ndents - 1) % ndents, 0); + break; + } + + /* Scroll down */ + if (event.bstate == BUTTON5_PRESSED && ndents) { + move_cursor((cur + 1) % ndents, 0); + break; + } + } +#endif + // Handle clicking on a context at the top: if (event.y == 0) { // Get context from: "[1 2 3 4]..."