From d4872377fef7eeb794ea06321f62281af0cde8e3 Mon Sep 17 00:00:00 2001 From: glepnir Date: Tue, 3 Oct 2023 19:26:11 +0800 Subject: fix(highlight): attr set all when normal attr changed --- src/nvim/highlight_group.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c index 080dc79e0e..09a28989e4 100644 --- a/src/nvim/highlight_group.c +++ b/src/nvim/highlight_group.c @@ -866,9 +866,17 @@ void set_hl_group(int id, HlAttrs attrs, Dict(highlight) *dict, int link_id) if (strcmp(g->sg_name_u, "NORMAL") == 0) { cterm_normal_fg_color = g->sg_cterm_fg; cterm_normal_bg_color = g->sg_cterm_bg; + bool did_changed = false; + if (normal_bg != g->sg_rgb_bg || normal_fg != g->sg_rgb_fg || normal_sp != g->sg_rgb_sp) { + did_changed = true; + } normal_fg = g->sg_rgb_fg; normal_bg = g->sg_rgb_bg; normal_sp = g->sg_rgb_sp; + + if (did_changed) { + highlight_attr_set_all(); + } ui_default_colors_set(); } else { // a cursor style uses this syn_id, make sure its attribute is updated. -- cgit