From: Bram Moolenaar Date: Sun, 21 Aug 2016 19:03:37 +0000 (+0200) Subject: patch 7.4.2238 X-Git-Tag: v7.4.2238 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=de7762a2c1498e2dc43586feb5f982d661799f85;p=vim patch 7.4.2238 Problem: With SGR mouse reporting (suckless terminal) the mouse release and scroll up/down is confused. Solution: Don't see a release as a scroll up/down. (Ralph Eastwood) --- diff --git a/src/term.c b/src/term.c index 774ef6552..4d505e33d 100644 --- a/src/term.c +++ b/src/term.c @@ -4939,7 +4939,7 @@ check_termcode( button = getdigits(&p); mouse_code = 0; - switch( button ) + switch (button) { case 4: mouse_code = MOUSE_LEFT; break; case 1: mouse_code = MOUSE_RIGHT; break; @@ -4947,7 +4947,7 @@ check_termcode( default: return -1; } - switch( action ) + switch (action) { case 31: /* Initial press */ if (*p++ != ';') @@ -5096,9 +5096,11 @@ check_termcode( else if (orig_num_clicks == 4) modifiers |= MOD_MASK_4CLICK; - /* Work out our pseudo mouse event */ + /* Work out our pseudo mouse event. Note that MOUSE_RELEASE gets + * added, then it's not mouse up/down. */ key_name[0] = (int)KS_EXTRA; - if (wheel_code != 0) + if (wheel_code != 0 + && (wheel_code & MOUSE_RELEASE) != MOUSE_RELEASE) { if (wheel_code & MOUSE_CTRL) modifiers |= MOD_MASK_CTRL; diff --git a/src/version.c b/src/version.c index fe60c3248..0d3d49196 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2238, /**/ 2237, /**/