diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-02-27 13:04:59 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-02-27 13:04:59 +0100 |
commit | 33ef5bb0e4ea9a049c4311cfe59d1926dcb963a4 (patch) | |
tree | b3f1e306768ebcc6fd6f63e6988da27f95d7a3f6 /src | |
parent | 9271d058c92c94b696eed5da24a69c077f42bc91 (diff) | |
download | vim-git-33ef5bb0e4ea9a049c4311cfe59d1926dcb963a4.tar.gz |
patch 8.0.1543: with 'termguicolors' Normal color doesn't work correctlyv8.0.1543
Problem: With 'termguicolors' Normal color doesn't work correctly.
Solution: Set cterm_normal_bg_gui_color and cterm_normal_fg_color always.
(Kazunobu Kuriyama, closes #981, closes #2332)
Diffstat (limited to 'src')
-rw-r--r-- | src/syntax.c | 50 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 26 insertions, 26 deletions
diff --git a/src/syntax.c b/src/syntax.c index 89941b625..8c11c2b64 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -8411,10 +8411,10 @@ highlight_clear(int idx) void set_normal_colors(void) { -#ifdef FEAT_GUI -# ifdef FEAT_TERMGUICOLORS +# ifdef FEAT_GUI +# ifdef FEAT_TERMGUICOLORS if (gui.in_use) -# endif +# endif { if (set_group_colors((char_u *)"Normal", &gui.norm_pixel, &gui.back_pixel, @@ -8423,27 +8423,27 @@ set_normal_colors(void) gui_mch_new_colors(); must_redraw = CLEAR; } -# ifdef FEAT_GUI_X11 +# ifdef FEAT_GUI_X11 if (set_group_colors((char_u *)"Menu", &gui.menu_fg_pixel, &gui.menu_bg_pixel, TRUE, FALSE, FALSE)) { -# ifdef FEAT_MENU +# ifdef FEAT_MENU gui_mch_new_menu_colors(); -# endif +# endif must_redraw = CLEAR; } -# ifdef FEAT_BEVAL_GUI +# ifdef FEAT_BEVAL_GUI if (set_group_colors((char_u *)"Tooltip", &gui.tooltip_fg_pixel, &gui.tooltip_bg_pixel, FALSE, FALSE, TRUE)) { -# ifdef FEAT_TOOLBAR +# ifdef FEAT_TOOLBAR gui_mch_new_tooltip_colors(); -# endif +# endif must_redraw = CLEAR; } -# endif +# endif if (set_group_colors((char_u *)"Scrollbar", &gui.scroll_fg_pixel, &gui.scroll_bg_pixel, FALSE, FALSE, FALSE)) @@ -8451,13 +8451,13 @@ set_normal_colors(void) gui_new_scrollbar_colors(); must_redraw = CLEAR; } -# endif +# endif } -#endif -#ifdef FEAT_TERMGUICOLORS -# ifdef FEAT_GUI - else # endif +# ifdef FEAT_TERMGUICOLORS +# ifdef FEAT_GUI + else +# endif { int idx; @@ -8466,19 +8466,20 @@ set_normal_colors(void) { gui_do_one_color(idx, FALSE, FALSE); - if (HL_TABLE()[idx].sg_gui_fg != INVALCOLOR) + /* If the normal fg or bg color changed a complete redraw is + * required. */ + if (cterm_normal_fg_gui_color != HL_TABLE()[idx].sg_gui_fg + || cterm_normal_bg_gui_color != HL_TABLE()[idx].sg_gui_bg) { + /* if the GUI color is INVALCOLOR then we use the default cterm + * color */ cterm_normal_fg_gui_color = HL_TABLE()[idx].sg_gui_fg; - must_redraw = CLEAR; - } - if (HL_TABLE()[idx].sg_gui_bg != INVALCOLOR) - { cterm_normal_bg_gui_color = HL_TABLE()[idx].sg_gui_bg; must_redraw = CLEAR; } } } -#endif +# endif } #endif @@ -9867,9 +9868,10 @@ syn_get_final_id(int hl_id) return hl_id; } -#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS) +#if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS) || defined(PROTO) /* * Call this function just after the GUI has started. + * Also called when 'termguicolors' was set, gui.in_use will be FALSE then. * It finds the font and color handles for the highlighting groups. */ void @@ -9878,12 +9880,8 @@ highlight_gui_started(void) int idx; /* First get the colors from the "Normal" and "Menu" group, if set */ -# if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS) -# ifdef FEAT_TERMGUICOLORS if (USE_24BIT) -# endif set_normal_colors(); -# endif for (idx = 0; idx < highlight_ga.ga_len; ++idx) gui_do_one_color(idx, FALSE, FALSE); diff --git a/src/version.c b/src/version.c index 462f746e2..09dcc57d9 100644 --- a/src/version.c +++ b/src/version.c @@ -779,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1543, +/**/ 1542, /**/ 1541, |