Mercurial > vim
changeset 9929:579abc260d85 v7.4.2238
commit https://github.com/vim/vim/commit/de7762a2c1498e2dc43586feb5f982d661799f85
Author: Bram Moolenaar <Bram@vim.org>
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 21 Aug 2016 21:15:06 +0200 |
parents | 16a7dee7239c |
children | 0b494d8c3410 |
files | src/term.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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;