patch 8.2.1556: cursorline highlighting always overrules sign highlighting
Problem: Cursorline highlighting always overrules sign highlighting.
Solution: Combine the highlighting, use the priority to decide how.
(closes #6812)
diff --git a/src/drawline.c b/src/drawline.c
index fa25965..2b72de6 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -909,7 +909,19 @@
if (!cul_screenline)
{
cul_attr = HL_ATTR(HLF_CUL);
- line_attr = cul_attr;
+# ifdef FEAT_SIGNS
+ // Combine the 'cursorline' and sign highlighting, depending on
+ // the sign priority.
+ if (sign_present && sattr.sat_linehl > 0)
+ {
+ if (sattr.sat_priority >= 100)
+ line_attr = hl_combine_attr(cul_attr, line_attr);
+ else
+ line_attr = hl_combine_attr(line_attr, cul_attr);
+ }
+ else
+# endif
+ line_attr = cul_attr;
wp->w_last_cursorline = wp->w_cursor.lnum;
}
else