mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
feat(tui): recognize X1 and X2 mouse events
Ref: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
This commit is contained in:
parent
d7aba51d39
commit
44dbfcfba4
@ -403,6 +403,7 @@ static unsigned handle_mouse_event(const char **ptr, uint8_t *buf, unsigned bufs
|
||||
|
||||
if (type != KS_EXTRA
|
||||
|| !((mouse_code >= KE_LEFTMOUSE && mouse_code <= KE_RIGHTRELEASE)
|
||||
|| (mouse_code >= KE_X1MOUSE && mouse_code <= KE_X2RELEASE)
|
||||
|| (mouse_code >= KE_MOUSEDOWN && mouse_code <= KE_MOUSERIGHT)
|
||||
|| mouse_code == KE_MOUSEMOVE)) {
|
||||
return bufsize;
|
||||
|
@ -387,6 +387,10 @@ static void forward_mouse_event(TermInput *input, TermKeyKey *key)
|
||||
len += (size_t)snprintf(buf + len, sizeof(buf) - len, "Middle");
|
||||
} else if (button == 3) {
|
||||
len += (size_t)snprintf(buf + len, sizeof(buf) - len, "Right");
|
||||
} else if (button == 8) {
|
||||
len += (size_t)snprintf(buf + len, sizeof(buf) - len, "X1");
|
||||
} else if (button == 9) {
|
||||
len += (size_t)snprintf(buf + len, sizeof(buf) - len, "X2");
|
||||
}
|
||||
|
||||
switch (ev) {
|
||||
|
@ -327,6 +327,12 @@ TermKeyResult termkey_interpret_mouse(TermKey *tk, const TermKeyKey *key, TermKe
|
||||
btn = code + 4 - 64;
|
||||
break;
|
||||
|
||||
case 128:
|
||||
case 129:
|
||||
*event = drag ? TERMKEY_MOUSE_DRAG : TERMKEY_MOUSE_PRESS;
|
||||
btn = code + 8 - 128;
|
||||
break;
|
||||
|
||||
default:
|
||||
*event = TERMKEY_MOUSE_UNKNOWN;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user