diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-09-11 19:11:18 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-11-02 11:01:58 +0100 |
commit | 31137e9bc70f2514b065cc4b9beed42399ab2904 (patch) | |
tree | d2e45b3b412391dca5d6fd52bbfd1454bcb32082 | |
parent | 08fe10010ab438451d976e8fb412c3034d9ffeed (diff) | |
download | rneovim-31137e9bc70f2514b065cc4b9beed42399ab2904.tar.gz rneovim-31137e9bc70f2514b065cc4b9beed42399ab2904.tar.bz2 rneovim-31137e9bc70f2514b065cc4b9beed42399ab2904.zip |
highlight: correctly disable index attribute with combine/blend
-rw-r--r-- | src/nvim/highlight.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c index 8564737ea2..c96f07ed89 100644 --- a/src/nvim/highlight.c +++ b/src/nvim/highlight.c @@ -321,18 +321,26 @@ int hl_combine_attr(int char_attr, int prim_attr) if (spell_aep.cterm_fg_color > 0) { new_en.cterm_fg_color = spell_aep.cterm_fg_color; + new_en.rgb_ae_attr &= ((~HL_FG_INDEXED) + | (spell_aep.rgb_ae_attr & HL_FG_INDEXED)); } if (spell_aep.cterm_bg_color > 0) { new_en.cterm_bg_color = spell_aep.cterm_bg_color; + new_en.rgb_ae_attr &= ((~HL_BG_INDEXED) + | (spell_aep.rgb_ae_attr & HL_BG_INDEXED)); } if (spell_aep.rgb_fg_color >= 0) { new_en.rgb_fg_color = spell_aep.rgb_fg_color; + new_en.rgb_ae_attr &= ((~HL_FG_INDEXED) + | (spell_aep.rgb_ae_attr & HL_FG_INDEXED)); } if (spell_aep.rgb_bg_color >= 0) { new_en.rgb_bg_color = spell_aep.rgb_bg_color; + new_en.rgb_ae_attr &= ((~HL_BG_INDEXED) + | (spell_aep.rgb_ae_attr & HL_BG_INDEXED)); } if (spell_aep.rgb_sp_color >= 0) { @@ -422,6 +430,7 @@ int hl_blend_attrs(int back_attr, int front_attr, bool *through) cattrs.cterm_bg_color = fattrs.cterm_bg_color; cattrs.cterm_fg_color = cterm_blend(ratio, battrs.cterm_fg_color, fattrs.cterm_bg_color); + cattrs.rgb_ae_attr &= ~(HL_FG_INDEXED | HL_BG_INDEXED); } else { cattrs = fattrs; if (ratio >= 50) { @@ -435,6 +444,8 @@ int hl_blend_attrs(int back_attr, int front_attr, bool *through) } else { cattrs.rgb_sp_color = -1; } + + cattrs.rgb_ae_attr &= ~HL_BG_INDEXED; } cattrs.rgb_bg_color = rgb_blend(ratio, battrs.rgb_bg_color, fattrs.rgb_bg_color); |