aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-07-12 19:50:30 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-07-12 19:50:30 +0530
commit9b0cf4a2b9729e7705a7d64ad5668da3cac84bc3 (patch)
tree48da218d72a030be2044f75fcbd7378774e3370e
parentbeabe624671fded77adc557f6f18fb0fb8115b58 (diff)
downloadnnn-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.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 3454359..8e841c1 100644
--- 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]..."