# HG changeset patch # User Christian Brabandt # Date 1471806906 -7200 # Node ID 579abc260d85ecc491d0efe9be2c3563434972e6 # Parent 16a7dee7239ca2a27a17860cdcc078d05668d5b5 commit https://github.com/vim/vim/commit/de7762a2c1498e2dc43586feb5f982d661799f85 Author: Bram Moolenaar Date: Sun Aug 21 21:03:37 2016 +0200 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2238, +/**/ 2237, /**/ 2236,