diff options
Diffstat (limited to 'src/terminal.c')
-rw-r--r-- | src/terminal.c | 21 |
1 files changed, 19 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"; |