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);
 	}
     }
 }
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    820,
+/**/
     819,
 /**/
     818,