changeset 12895:d872005ecfcd v8.0.1324

patch 8.0.1324: some xterm sends different mouse move codes commit https://github.com/vim/vim/commit/bb160a188abb3c40258d3e5726524ce203333e84 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Nov 20 21:52:24 2017 +0100 patch 8.0.1324: some xterm sends different mouse move codes Problem: Some xterm sends different mouse move codes. Solution: Also accept 0x80 as a move event.
author Christian Brabandt <cb@256bit.org>
date Mon, 20 Nov 2017 22:00:07 +0100
parents 8b3dc59c992f
children 1005b7081579
files src/term.c src/version.c
diffstat 2 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/term.c
+++ b/src/term.c
@@ -4980,6 +4980,8 @@ check_termcode(
 		 *	add 0x08 for ALT
 		 *	add 0x10 for CTRL
 		 *	add 0x20 for mouse drag (0x40 is drag with left button)
+		 *	add 0x40 for mouse move (0x80 is move, 0x81 too)
+		 *		 0x43 (drag + release) is also move
 		 *  c == column + ' ' + 1 == column + 33
 		 *  r == row + ' ' + 1 == row + 33
 		 *
@@ -5121,9 +5123,15 @@ check_termcode(
 #   endif
 			)
 		{
-		    /* Keep the mouse_code before it's changed, so that we
-		     * remember that it was a mouse wheel click. */
-		    wheel_code = mouse_code;
+#   if defined(UNIX) && defined(FEAT_MOUSE_TTY)
+		    if (use_xterm_mouse() > 1 && mouse_code >= 0x80)
+			/* mouse-move event, using MOUSE_DRAG works */
+			mouse_code = MOUSE_DRAG;
+		    else
+#   endif
+			/* Keep the mouse_code before it's changed, so that we
+			 * remember that it was a mouse wheel click. */
+			wheel_code = mouse_code;
 		}
 #   ifdef FEAT_MOUSE_XTERM
 		else if (held_button == MOUSE_RELEASE
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1324,
+/**/
     1323,
 /**/
     1322,