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)
diff --git a/src/os_win32.c b/src/os_win32.c
index ead50e1..4c97b31 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2055,17 +2055,23 @@
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
{