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:
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]..."