diff options
Diffstat (limited to 'usr.bin/tmux/server-client.c')
-rw-r--r-- | usr.bin/tmux/server-client.c | 514 |
1 files changed, 465 insertions, 49 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c index 1493b6726a5..9af2a290382 100644 --- a/usr.bin/tmux/server-client.c +++ b/usr.bin/tmux/server-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.415 2024/11/05 09:41:17 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.416 2024/11/12 09:32:56 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -576,10 +576,12 @@ server_client_check_mouse(struct client *c, struct key_event *event) { struct mouse_event *m = &event->m; struct session *s = c->session, *fs; + struct options *wo = s->curw->window->options; struct winlink *fwl; struct window_pane *wp, *fwp; - u_int x, y, b, sx, sy, px, py; - int ignore = 0; + u_int x, y, b, sx, sy, px, py, line = 0, sb_pos; + u_int sl_top, sl_bottom, sl_mpos = 0; + int ignore = 0, sb, sb_w, pane_status; key_code key; struct timeval tv; struct style_range *sr; @@ -598,7 +600,10 @@ server_client_check_mouse(struct client *c, struct key_event *event) STATUS_LEFT, STATUS_RIGHT, STATUS_DEFAULT, - BORDER } where = NOWHERE; + BORDER, + SCROLLBAR_UP, + SCROLLBAR_SLIDER, + SCROLLBAR_DOWN } where = NOWHERE; log_debug("%s mouse %02x at %u,%u (last %u,%u) (%d)", c->name, m->b, m->x, m->y, m->lx, m->ly, c->tty.mouse_drag_flag); @@ -747,54 +752,114 @@ have_event: } } - /* Not on status line. Adjust position and check for border or pane. */ + /* + * Not on status line. Adjust position and check for border, pane, or + * scrollbar. + */ if (where == NOWHERE) { - px = x; - if (m->statusat == 0 && y >= m->statuslines) - py = y - m->statuslines; - else if (m->statusat > 0 && y >= (u_int)m->statusat) - py = m->statusat - 1; - else - py = y; - - tty_window_offset(&c->tty, &m->ox, &m->oy, &sx, &sy); - log_debug("mouse window @%u at %u,%u (%ux%u)", - s->curw->window->id, m->ox, m->oy, sx, sy); - if (px > sx || py > sy) - return (KEYC_UNKNOWN); - px = px + m->ox; - py = py + m->oy; - - /* Try the pane borders if not zoomed. */ - if (~s->curw->window->flags & WINDOW_ZOOMED) { - TAILQ_FOREACH(wp, &s->curw->window->panes, entry) { - if ((wp->xoff + wp->sx == px && - wp->yoff <= 1 + py && - wp->yoff + wp->sy >= py) || - (wp->yoff + wp->sy == py && - wp->xoff <= 1 + px && - wp->xoff + wp->sx >= px)) - break; - } - if (wp != NULL) - where = BORDER; - } + if (c->tty.mouse_scrolling_flag) + where = SCROLLBAR_SLIDER; + else { + px = x; + if (m->statusat == 0 && y >= m->statuslines) + py = y - m->statuslines; + else if (m->statusat > 0 && y >= (u_int)m->statusat) + py = m->statusat - 1; + else + py = y; + + tty_window_offset(&c->tty, &m->ox, &m->oy, &sx, &sy); + log_debug("mouse window @%u at %u,%u (%ux%u)", + s->curw->window->id, m->ox, m->oy, sx, sy); + if (px > sx || py > sy) + return (KEYC_UNKNOWN); + px = px + m->ox; + py = py + m->oy; - /* Otherwise try inside the pane. */ - if (where == NOWHERE) { + /* Try inside the pane. */ wp = window_get_active_at(s->curw->window, px, py); - if (wp != NULL) - where = PANE; - else + if (wp == NULL) return (KEYC_UNKNOWN); + + /* Try the scrollbar next to a pane. */ + sb = options_get_number(wo, "pane-scrollbars"); + sb_pos = options_get_number(wo, + "pane-scrollbars-position"); + if (sb == PANE_SCROLLBARS_ALWAYS || + (sb == PANE_SCROLLBARS_MODAL && + window_pane_mode(wp) != WINDOW_PANE_NO_MODE)) + sb_w = PANE_SCROLLBARS_WIDTH; + else + sb_w = 0; + pane_status = options_get_number(wo, + "pane-border-status"); + if (pane_status == PANE_STATUS_TOP) + line = wp->yoff - 1; + else if (pane_status == PANE_STATUS_BOTTOM) + line = wp->yoff + wp->sy; + + /* + * Check if py could lie within a scrollbar. If the + * pane is at the top, then py is 0; if not then the + * top, then yoff to yoff + sy. + */ + if ((pane_status != PANE_STATUS_OFF && py != line) || + (wp->yoff == 0 && py < wp->sy) || + (py >= wp->yoff && py < wp->yoff + wp->sy)) { + if ((sb_pos == PANE_SCROLLBARS_RIGHT && + (px >= wp->xoff + wp->sx && + px < wp->xoff + wp->sx + sb_w)) || + (sb_pos == PANE_SCROLLBARS_LEFT && + (px >= wp->xoff - sb_w && + px < wp->xoff))) { + sl_top = wp->yoff + wp->sb_slider_y; + sl_bottom = (wp->yoff + + wp->sb_slider_y + + wp->sb_slider_h - 1); + if (py < sl_top) + where = SCROLLBAR_UP; + else if (py >= sl_top && + py <= sl_bottom) { + where = SCROLLBAR_SLIDER; + sl_mpos = (py - + wp->sb_slider_y - wp->yoff); + } else /* py > sl_bottom */ + where = SCROLLBAR_DOWN; + } else + where = PANE; + } else { + /* Try the pane borders if not zoomed. */ + if (~s->curw->window->flags & WINDOW_ZOOMED) { + TAILQ_FOREACH(wp, + &s->curw->window->panes, entry) { + if ((wp->xoff + wp->sx == px && + wp->yoff <= 1 + py && + wp->yoff + wp->sy >= py) || + (wp->yoff + wp->sy == py && + wp->xoff <= 1 + px && + wp->xoff + wp->sx >= px)) + break; + } + if (wp != NULL) + where = BORDER; + } + } + if (where == PANE) { + log_debug("mouse %u,%u on pane %%%u", x, y, + wp->id); + } else if (where == BORDER) + log_debug("mouse on pane %%%u border", wp->id); + else if (where == SCROLLBAR_UP || + where == SCROLLBAR_SLIDER || + where == SCROLLBAR_DOWN) { + log_debug("mouse on pane %%%u scrollbar", + wp->id); + } + m->wp = wp->id; + m->w = wp->window->id; } - if (where == PANE) - log_debug("mouse %u,%u on pane %%%u", x, y, wp->id); - else if (where == BORDER) - log_debug("mouse on pane %%%u border", wp->id); - m->wp = wp->id; - m->w = wp->window->id; - } + } else + m->wp = -1; /* Stop dragging if needed. */ if (type != DRAG && type != WHEEL && c->tty.mouse_drag_flag != 0) { @@ -803,6 +868,7 @@ have_event: c->tty.mouse_drag_update = NULL; c->tty.mouse_drag_release = NULL; + c->tty.mouse_scrolling_flag = 0; /* * End a mouse drag by passing a MouseDragEnd key corresponding @@ -820,6 +886,8 @@ have_event: key = KEYC_MOUSEDRAGEND1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND1_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND1_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND1_BORDER; break; @@ -834,6 +902,8 @@ have_event: key = KEYC_MOUSEDRAGEND2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND2_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND2_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND2_BORDER; break; @@ -848,6 +918,8 @@ have_event: key = KEYC_MOUSEDRAGEND3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND3_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND3_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND3_BORDER; break; @@ -862,6 +934,8 @@ have_event: key = KEYC_MOUSEDRAGEND6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND6_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND6_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND6_BORDER; break; @@ -876,6 +950,8 @@ have_event: key = KEYC_MOUSEDRAGEND7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND7_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND7_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND7_BORDER; break; @@ -890,6 +966,8 @@ have_event: key = KEYC_MOUSEDRAGEND8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND8_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND8_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND8_BORDER; break; @@ -904,6 +982,8 @@ have_event: key = KEYC_MOUSEDRAGEND9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND9_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND9_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND9_BORDER; break; @@ -918,6 +998,8 @@ have_event: key = KEYC_MOUSEDRAGEND10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND10_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND10_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND10_BORDER; break; @@ -932,6 +1014,8 @@ have_event: key = KEYC_MOUSEDRAGEND11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAGEND11_STATUS_DEFAULT; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAGEND11_SCROLLBAR_SLIDER; if (where == BORDER) key = KEYC_MOUSEDRAGEND11_BORDER; break; @@ -940,6 +1024,7 @@ have_event: break; } c->tty.mouse_drag_flag = 0; + c->tty.mouse_slider_mpos = -1; goto out; } @@ -978,6 +1063,12 @@ have_event: key = KEYC_MOUSEDRAG1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG1_BORDER; break; @@ -992,6 +1083,12 @@ have_event: key = KEYC_MOUSEDRAG2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG2_BORDER; break; @@ -1006,6 +1103,12 @@ have_event: key = KEYC_MOUSEDRAG3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG3_BORDER; break; @@ -1020,6 +1123,12 @@ have_event: key = KEYC_MOUSEDRAG6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG6_BORDER; break; @@ -1034,6 +1143,12 @@ have_event: key = KEYC_MOUSEDRAG7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG7_BORDER; break; @@ -1048,6 +1163,12 @@ have_event: key = KEYC_MOUSEDRAG8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG8_BORDER; break; @@ -1062,6 +1183,12 @@ have_event: key = KEYC_MOUSEDRAG9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG9_BORDER; break; @@ -1076,6 +1203,12 @@ have_event: key = KEYC_MOUSEDRAG10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG10_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG10_BORDER; break; @@ -1090,6 +1223,12 @@ have_event: key = KEYC_MOUSEDRAG11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDRAG11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDRAG11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDRAG11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDRAG11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDRAG11_BORDER; break; @@ -1098,9 +1237,16 @@ have_event: /* * Begin a drag by setting the flag to a non-zero value that - * corresponds to the mouse button in use. + * corresponds to the mouse button in use. If starting to drag + * the scrollbar, store the relative position in the slider + * where the user grabbed. */ c->tty.mouse_drag_flag = MOUSE_BUTTONS(b) + 1; + if (c->tty.mouse_scrolling_flag == 0 && + where == SCROLLBAR_SLIDER) { + c->tty.mouse_scrolling_flag = 1; + c->tty.mouse_slider_mpos = sl_mpos; + } break; case WHEEL: if (MOUSE_BUTTONS(b) == MOUSE_WHEEL_UP) { @@ -1144,6 +1290,12 @@ have_event: key = KEYC_MOUSEUP1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP1_BORDER; break; @@ -1158,6 +1310,12 @@ have_event: key = KEYC_MOUSEUP2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP2_BORDER; break; @@ -1172,6 +1330,12 @@ have_event: key = KEYC_MOUSEUP3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP3_BORDER; break; @@ -1186,6 +1350,12 @@ have_event: key = KEYC_MOUSEUP6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP6_BORDER; break; @@ -1200,6 +1370,12 @@ have_event: key = KEYC_MOUSEUP7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP7_BORDER; break; @@ -1214,6 +1390,12 @@ have_event: key = KEYC_MOUSEUP8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP8_BORDER; break; @@ -1228,6 +1410,12 @@ have_event: key = KEYC_MOUSEUP9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP9_BORDER; break; @@ -1241,7 +1429,13 @@ have_event: if (where == STATUS_RIGHT) key = KEYC_MOUSEUP1_STATUS_RIGHT; if (where == STATUS_DEFAULT) - key = KEYC_MOUSEUP1_STATUS_DEFAULT; + key = KEYC_MOUSEUP10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP1_BORDER; break; @@ -1256,6 +1450,12 @@ have_event: key = KEYC_MOUSEUP11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEUP11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEUP11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEUP11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEUP11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEUP11_BORDER; break; @@ -1274,6 +1474,12 @@ have_event: key = KEYC_MOUSEDOWN1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN1_BORDER; break; @@ -1288,6 +1494,12 @@ have_event: key = KEYC_MOUSEDOWN2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN2_BORDER; break; @@ -1302,6 +1514,12 @@ have_event: key = KEYC_MOUSEDOWN3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN3_BORDER; break; @@ -1316,6 +1534,12 @@ have_event: key = KEYC_MOUSEDOWN6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN6_BORDER; break; @@ -1330,6 +1554,12 @@ have_event: key = KEYC_MOUSEDOWN7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN7_BORDER; break; @@ -1344,6 +1574,12 @@ have_event: key = KEYC_MOUSEDOWN8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN8_BORDER; break; @@ -1358,6 +1594,12 @@ have_event: key = KEYC_MOUSEDOWN9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN9_BORDER; break; @@ -1372,6 +1614,12 @@ have_event: key = KEYC_MOUSEDOWN10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN10_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN10_BORDER; break; @@ -1386,6 +1634,12 @@ have_event: key = KEYC_MOUSEDOWN11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_MOUSEDOWN11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_MOUSEDOWN11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_MOUSEDOWN11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_MOUSEDOWN11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_MOUSEDOWN11_BORDER; break; @@ -1404,6 +1658,12 @@ have_event: key = KEYC_SECONDCLICK1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK1_BORDER; break; @@ -1418,6 +1678,12 @@ have_event: key = KEYC_SECONDCLICK2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK2_BORDER; break; @@ -1432,6 +1698,12 @@ have_event: key = KEYC_SECONDCLICK3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK3_BORDER; break; @@ -1446,6 +1718,12 @@ have_event: key = KEYC_SECONDCLICK6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK6_BORDER; break; @@ -1460,6 +1738,12 @@ have_event: key = KEYC_SECONDCLICK7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK7_BORDER; break; @@ -1474,6 +1758,12 @@ have_event: key = KEYC_SECONDCLICK8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK8_BORDER; break; @@ -1488,6 +1778,12 @@ have_event: key = KEYC_SECONDCLICK9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK9_BORDER; break; @@ -1502,6 +1798,12 @@ have_event: key = KEYC_SECONDCLICK10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK10_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK10_BORDER; break; @@ -1516,6 +1818,12 @@ have_event: key = KEYC_SECONDCLICK11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_SECONDCLICK11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_SECONDCLICK11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_SECONDCLICK11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_SECONDCLICK11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_SECONDCLICK11_BORDER; break; @@ -1534,6 +1842,12 @@ have_event: key = KEYC_DOUBLECLICK1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK1_BORDER; break; @@ -1548,6 +1862,12 @@ have_event: key = KEYC_DOUBLECLICK2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK2_BORDER; break; @@ -1562,6 +1882,12 @@ have_event: key = KEYC_DOUBLECLICK3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK3_BORDER; break; @@ -1576,6 +1902,12 @@ have_event: key = KEYC_DOUBLECLICK6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK6_BORDER; break; @@ -1590,6 +1922,12 @@ have_event: key = KEYC_DOUBLECLICK7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK7_BORDER; break; @@ -1604,6 +1942,12 @@ have_event: key = KEYC_DOUBLECLICK8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK8_BORDER; break; @@ -1618,6 +1962,12 @@ have_event: key = KEYC_DOUBLECLICK9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK9_BORDER; break; @@ -1632,6 +1982,12 @@ have_event: key = KEYC_DOUBLECLICK10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK10_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK10_BORDER; break; @@ -1646,6 +2002,12 @@ have_event: key = KEYC_DOUBLECLICK11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_DOUBLECLICK11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_DOUBLECLICK11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_DOUBLECLICK11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_DOUBLECLICK11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_DOUBLECLICK11_BORDER; break; @@ -1664,6 +2026,12 @@ have_event: key = KEYC_TRIPLECLICK1_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK1_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK1_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK1_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK1_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK1_BORDER; break; @@ -1678,6 +2046,12 @@ have_event: key = KEYC_TRIPLECLICK2_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK2_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK2_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK2_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK2_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK2_BORDER; break; @@ -1692,6 +2066,12 @@ have_event: key = KEYC_TRIPLECLICK3_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK3_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK3_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK3_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK3_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK3_BORDER; break; @@ -1706,6 +2086,12 @@ have_event: key = KEYC_TRIPLECLICK6_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK6_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK6_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK6_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK6_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK6_BORDER; break; @@ -1720,6 +2106,12 @@ have_event: key = KEYC_TRIPLECLICK7_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK7_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK7_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK7_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK7_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK7_BORDER; break; @@ -1734,6 +2126,12 @@ have_event: key = KEYC_TRIPLECLICK8_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK8_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK8_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK8_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK8_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK8_BORDER; break; @@ -1748,6 +2146,12 @@ have_event: key = KEYC_TRIPLECLICK9_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK9_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK9_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK9_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK9_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK9_BORDER; break; @@ -1762,6 +2166,12 @@ have_event: key = KEYC_TRIPLECLICK10_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK10_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK10_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK10_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK10_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK10_BORDER; break; @@ -1776,6 +2186,12 @@ have_event: key = KEYC_TRIPLECLICK11_STATUS_RIGHT; if (where == STATUS_DEFAULT) key = KEYC_TRIPLECLICK11_STATUS_DEFAULT; + if (where == SCROLLBAR_UP) + key = KEYC_TRIPLECLICK11_SCROLLBAR_UP; + if (where == SCROLLBAR_SLIDER) + key = KEYC_TRIPLECLICK11_SCROLLBAR_SLIDER; + if (where == SCROLLBAR_DOWN) + key = KEYC_TRIPLECLICK11_SCROLLBAR_DOWN; if (where == BORDER) key = KEYC_TRIPLECLICK11_BORDER; break; |