changeset 14939:c085c4cd9bba v8.1.0481

patch 8.1.0481: when "Terminal" highlight is reverted cursor doesn't show commit https://github.com/vim/vim/commit/29e7fe55becd96ba812297de06cec06ea7e79892 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Oct 16 22:13:00 2018 +0200 patch 8.1.0481: when "Terminal" highlight is reverted cursor doesn't show Problem: When "Terminal" highlight is reverted cursor doesn't show. Solution: Get the colors of the "Terminal" group. (closes https://github.com/vim/vim/issues/3546)
author Bram Moolenaar <Bram@vim.org>
date Tue, 16 Oct 2018 22:15:06 +0200
parents fb7a915f839f
children eb7fa8dca248
files src/terminal.c src/version.c
diffstat 2 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1953,6 +1953,8 @@ term_get_cursor_shape(guicolor_T *fg, gu
 {
     term_T		 *term = in_terminal_loop;
     static cursorentry_T entry;
+    int			 id;
+    guicolor_T		term_fg, term_bg;
 
     vim_memset(&entry, 0, sizeof(entry));
     entry.shape = entry.mshape =
@@ -1966,9 +1968,24 @@ term_get_cursor_shape(guicolor_T *fg, gu
 	entry.blinkon = 400;
 	entry.blinkoff = 250;
     }
-    *fg = gui.back_pixel;
+
+    /* The "Terminal" highlight group overrules the defaults. */
+    id = syn_name2id((char_u *)"Terminal");
+    if (id != 0)
+    {
+	syn_id2colors(id, &term_fg, &term_bg);
+	*fg = term_bg;
+    }
+    else
+	*fg = gui.back_pixel;
+
     if (term->tl_cursor_color == NULL)
-	*bg = gui.norm_pixel;
+    {
+	if (id != 0)
+	    *bg = term_fg;
+	else
+	    *bg = gui.norm_pixel;
+    }
     else
 	*bg = color_name2handle(term->tl_cursor_color);
     entry.name = "n";
--- a/src/version.c
+++ b/src/version.c
@@ -793,6 +793,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    481,
+/**/
     480,
 /**/
     479,