Mercurial > vim
diff src/term.c @ 13244:ac42c4b11dbc v8.0.1496
patch 8.0.1496: clearing a pointer takes two lines
commit https://github.com/vim/vim/commit/d23a823669d93fb2a570a039173eefe4856ac806
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 10 18:45:26 2018 +0100
patch 8.0.1496: clearing a pointer takes two lines
Problem: Clearing a pointer takes two lines.
Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
closes #2629)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 10 Feb 2018 19:00:07 +0100 |
parents | 808625d4b71b |
children | 65c3e8259124 |
line wrap: on
line diff
--- a/src/term.c +++ b/src/term.c @@ -2502,7 +2502,8 @@ out_flush(void) } /* - * out_flush_cursor(): flush the output buffer and redraw the cursor + * out_flush_cursor(): flush the output buffer and redraw the cursor. + * Does not flush recursively in the GUI to avoid slow drawing. */ void out_flush_cursor( @@ -3912,8 +3913,7 @@ clear_termcodes(void) { while (tc_len > 0) vim_free(termcodes[--tc_len].code); - vim_free(termcodes); - termcodes = NULL; + VIM_CLEAR(termcodes); tc_max_len = 0; #ifdef HAVE_TGETENT @@ -5648,7 +5648,7 @@ check_termcode( /* 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)