From 36446bbb62b466ce873c872b266a29bebbfc9890 Mon Sep 17 00:00:00 2001 From: Christopher Plewright Date: Wed, 23 Nov 2022 22:28:08 +0000 Subject: patch 9.0.0931: MS-Windows: mouse column limited to 223 Problem: MS-Windows: mouse column limited to 223. Solution: Use two bytes for each mouse coordinate. Add the mouse position to scroll events. (Christopher Plewright, closes #11597) --- src/os_win32.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/os_win32.c') diff --git a/src/os_win32.c b/src/os_win32.c index ead50e186a..4c97b31002 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -2055,17 +2055,23 @@ mch_inchar( typeahead[typeaheadlen++] = CSI; typeahead[typeaheadlen++] = KS_EXTRA; typeahead[typeaheadlen++] = scroll_dir; - g_nMouseClick = -1; } else { typeahead[typeaheadlen++] = ESC + 128; typeahead[typeaheadlen++] = 'M'; typeahead[typeaheadlen++] = g_nMouseClick; - typeahead[typeaheadlen++] = g_xMouse + '!'; - typeahead[typeaheadlen++] = g_yMouse + '!'; - g_nMouseClick = -1; } + + // Pass the pointer coordinates of the mouse event in 2 bytes, + // allowing for > 223 columns. Both for click and scroll events. + // This is the same as what is used for the GUI. + typeahead[typeaheadlen++] = (char_u)(g_xMouse / 128 + ' ' + 1); + typeahead[typeaheadlen++] = (char_u)(g_xMouse % 128 + ' ' + 1); + typeahead[typeaheadlen++] = (char_u)(g_yMouse / 128 + ' ' + 1); + typeahead[typeaheadlen++] = (char_u)(g_yMouse % 128 + ' ' + 1); + + g_nMouseClick = -1; } else { -- cgit v1.2.3