# HG changeset patch # User Bram Moolenaar # Date 1569270603 -7200 # Node ID 1acc94f17906bba374d6c4ada73484cb24089021 # Parent 6b00e9517382f0e458ea69f234928bea9fd621fa patch 8.1.2071: when 'wincolor' is set text property changes highlighting Commit: https://github.com/vim/vim/commit/053f712ef20d143818aa07275cf1f4fa55afbf85 Author: Bram Moolenaar Date: Mon Sep 23 22:17:15 2019 +0200 patch 8.1.2071: when 'wincolor' is set text property changes highlighting Problem: When 'wincolor' is set text property changes highlighting. (Andy Stewart) Solution: Fix combining colors. (closes #4968) diff --git a/src/drawline.c b/src/drawline.c --- a/src/drawline.c +++ b/src/drawline.c @@ -1367,6 +1367,7 @@ win_line( text_prop_attr = 0; text_prop_combine = FALSE; + text_prop_type = NULL; if (text_props_active > 0) { // Sort the properties on priority and/or starting last. @@ -1406,8 +1407,11 @@ win_line( # ifdef FEAT_TEXT_PROP else if (text_prop_type != NULL) { - char_attr = hl_combine_attr( - line_attr != 0 ? line_attr : win_attr, text_prop_attr); + char_attr = hl_combine_attr(line_attr != 0 + ? line_attr + : syntax_attr != 0 + ? syntax_attr + : win_attr, text_prop_attr); } # endif else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL) diff --git a/src/testdir/dumps/Test_wincolor_01.dump b/src/testdir/dumps/Test_wincolor_01.dump --- a/src/testdir/dumps/Test_wincolor_01.dump +++ b/src/testdir/dumps/Test_wincolor_01.dump @@ -1,8 +1,8 @@ | +0#af5f00255#ffd7ff255@1|2| | +0#0000001&@4| +0&#e0e0e08| +0&#ffd7ff255@64 -| +0#af5f00255&@1|1| |1+0#0000001&@4|1+0#0000000#e0e0e08@4| | +0#0000001#ffd7ff255@59 -| +8#af5f00255&@1|0| |2+0#0000000#e0e0e08@4>2+0#0000001#ffd7ff255@5| +8&&@59 +| +0#af5f00255&@1|1| |1+0#0000001&@4|1+0&#e0e0e08@4| | +0&#ffd7ff255@59 +| +8#af5f00255&@1|0| |2+0#0000001#e0e0e08@4>2+0&#ffd7ff255@5| +8&&@59 | +0#af5f00255&@1|1| |3+0#0000001&| |h|e|r|e+0&#e0e0e08| +0&#ffd7ff255|3| @62 | +0#af5f00255&@1|2| | +0#0000001&@4| +0&#e0e0e08| +0&#ffd7ff255@64 +| +0#af5f00255&@1|3| |t+0#40ff4011&|h|e| |c|a+0&#e0e0e08|t+0&#ffd7ff255| |i|s| |o+1&&|u|t| +0&&|o|f| |t|h|e| |b|a|g| +0#0000001&@45 |~+0#4040ff13&| @73 -|~| @73 |-+2#0000000#ffffff0@1| |V|I|S|U|A|L| |-@1| +0&&@34|2| @8|3|,|6| @10|A|l@1| diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim --- a/src/testdir/test_highlight.vim +++ b/src/testdir/test_highlight.vim @@ -595,8 +595,13 @@ func Test_wincolor() let lines =<< trim END set cursorline cursorcolumn rnu - call setline(1, ["","1111111111","22222222222","3 here 3",""]) + call setline(1, ["","1111111111","22222222222","3 here 3","","the cat is out of the bag"]) set wincolor=Pmenu + hi CatLine guifg=green ctermfg=green + hi Reverse gui=reverse cterm=reverse + syn match CatLine /^the.*/ + call prop_type_add("foo", {"highlight": "Reverse", "combine": 1}) + call prop_add(6, 12, {"type": "foo", "end_col": 15}) /here END call writefile(lines, 'Xtest_wincolor') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2071, +/**/ 2070, /**/ 2069,