diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2019-07-12 19:50:30 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2019-07-12 19:50:30 +0530 |
commit | 9b0cf4a2b9729e7705a7d64ad5668da3cac84bc3 (patch) | |
tree | 48da218d72a030be2044f75fcbd7378774e3370e | |
parent | beabe624671fded77adc557f6f18fb0fb8115b58 (diff) | |
download | nnn-9b0cf4a2b9729e7705a7d64ad5668da3cac84bc3.tar.gz |
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
-rw-r--r-- | src/nnn.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -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]..." |