Mercurial > vim
changeset 11880:45558e0507e8 v8.0.0820
patch 8.0.0820: GUI: cursor in terminal window lags behind
commit https://github.com/vim/vim/commit/12d93ee26d4290321ed0cc3d0493b966d1475a66
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 30 19:02:02 2017 +0200
patch 8.0.0820: GUI: cursor in terminal window lags behind
Problem: GUI: cursor in terminal window lags behind.
Solution: call gui_update_cursor() under different conditions. (Ozaki
Kiichi, closes #1893)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 30 Jul 2017 19:15:05 +0200 |
parents | b4616f82466a |
children | 660b536de628 |
files | src/terminal.c src/version.c |
diffstat | 2 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -51,6 +51,9 @@ * job finishes). * - add option values to the command: * :term <24x80> <close> vim notes.txt + * - support different cursor shapes, colors and attributes + * - make term_getcursor() return type (none/block/bar/underline) and + * attributes (color, blink, etc.) * - To set BS correctly, check get_stty(); Pass the fd of the pty. * - do not store terminal window in viminfo. Or prefix term:// ? * - add a character in :ls output @@ -359,7 +362,7 @@ update_cursor(term_T *term, int redraw) cursor_on(); out_flush(); #ifdef FEAT_GUI - if (gui.in_use && term->tl_cursor_visible) + if (gui.in_use) gui_update_cursor(FALSE, FALSE); #endif } @@ -1034,7 +1037,7 @@ handle_movecursor( if (term->tl_buffer == curbuf) { may_toggle_cursor(term); - update_cursor(term, TRUE); + update_cursor(term, term->tl_cursor_visible); } return 1; @@ -1180,11 +1183,12 @@ term_channel_closed(channel_T *ch) /* Need to break out of vgetc(). */ ins_char_typebuf(K_IGNORE); - if (curbuf->b_term != NULL) + term = curbuf->b_term; + if (term != NULL) { - if (curbuf->b_term->tl_job == ch->ch_job) + if (term->tl_job == ch->ch_job) maketitle(); - update_cursor(curbuf->b_term, TRUE); + update_cursor(term, term->tl_cursor_visible); } } }