summaryrefslogtreecommitdiff
path: root/src/highlight.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/highlight.c')
-rw-r--r--src/highlight.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/highlight.c b/src/highlight.c
index 9ce610293..6291f24ac 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -2929,7 +2929,12 @@ set_hl_attr(
# endif
at_en.ae_u.cterm.fg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_fg);
at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_bg);
- at_en.ae_u.cterm.ul_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_sp);
+ // Only use the underline/undercurl color when used, it may clear the
+ // background color if not supported.
+ if (sgp->sg_cterm & (HL_UNDERLINE | HL_UNDERCURL))
+ at_en.ae_u.cterm.ul_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_sp);
+ else
+ at_en.ae_u.cterm.ul_rgb = INVALCOLOR;
if (at_en.ae_u.cterm.fg_rgb == INVALCOLOR
&& at_en.ae_u.cterm.bg_rgb == INVALCOLOR)
{