From 29e7fe55becd96ba812297de06cec06ea7e79892 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 16 Oct 2018 22:13:00 +0200 Subject: 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 #3546) --- src/terminal.c | 21 +++++++++++++++++++-- src/version.c | 2 ++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/terminal.c b/src/terminal.c index 0c7630c62..4e62253d5 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -1953,6 +1953,8 @@ term_get_cursor_shape(guicolor_T *fg, guicolor_T *bg) { 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, guicolor_T *bg) 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"; diff --git a/src/version.c b/src/version.c index 1eab778c9..dada7a7fe 100644 --- a/src/version.c +++ b/src/version.c @@ -792,6 +792,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 481, /**/ 480, /**/ -- cgit v1.2.1