0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 9.0.0918: MS-Windows: modifier keys do not work with mouse scroll event

Problem:    MS-Windows: modifier keys do not work with mouse scroll events.
Solution:   Use K_SPECIAL instead of CSI for the modifier keys. (Christopher
            Plewright, closes #11587)
This commit is contained in:
Christopher Plewright
2022-11-22 12:58:27 +00:00
committed by Bram Moolenaar
parent 35fc61cb5b
commit 0319306f20
4 changed files with 27 additions and 29 deletions

View File

@@ -5125,7 +5125,7 @@ handle_csi(
csi_len, offset, buf, bufsize, buflen);
}
// Key without modifier (bad Kitty may send this):
// Key without modifier (Kitty sends this for Esc):
// {lead}{key}u
else if (argc == 1 && trail == 'u')
{
@@ -5456,6 +5456,23 @@ check_termcode(
}
else
#endif // FEAT_GUI
#ifdef MSWIN
if (len >= 3 && tp[0] == CSI && tp[1] == KS_EXTRA
&& (tp[2] == KE_MOUSEUP
|| tp[2] == KE_MOUSEDOWN
|| tp[2] == KE_MOUSELEFT
|| tp[2] == KE_MOUSERIGHT))
{
// MS-Windows console sends mouse scroll events encoded:
// - CSI
// - KS_EXTRA
// - {KE_MOUSE[UP|DOWN|LEFT|RIGHT]}
slen = 3;
key_name[0] = tp[1];
key_name[1] = tp[2];
}
else
#endif
{
int mouse_index_found = -1;