Mercurial > vim
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";