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
This commit is contained in:
Arun Prakash Jana 2019-07-12 19:50:30 +05:30
parent beabe62467
commit 9b0cf4a2b9
No known key found for this signature in database
GPG Key ID: A75979F35C080412
1 changed files with 22 additions and 0 deletions

View File

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