ui: transmit "blend=" property of highlight attributes
This commit is contained in:
parent
6b2d67eb59
commit
628f8f3dfd
|
@ -292,6 +292,8 @@ numerical highlight ids to the actual attributes.
|
|||
`bold`: bold text.
|
||||
`underline`: underlined text. The line has `special` color.
|
||||
`undercurl`: undercurled text. The curl has `special` color.
|
||||
`blend`: Blend level (0-100). Could be used by UIs to support
|
||||
blending floating windows to the background.
|
||||
|
||||
For absent color keys the default color should be used. Don't store
|
||||
the default value in the table, rather a sentinel value, so that
|
||||
|
|
|
@ -233,6 +233,7 @@ int hl_get_underline(void)
|
|||
.rgb_fg_color = -1,
|
||||
.rgb_bg_color = -1,
|
||||
.rgb_sp_color = -1,
|
||||
.hl_blend = -1,
|
||||
},
|
||||
.kind = kHlUI,
|
||||
.id1 = 0,
|
||||
|
@ -427,6 +428,8 @@ int hl_blend_attrs(int back_attr, int front_attr, bool *through)
|
|||
cattrs.rgb_bg_color = rgb_blend(ratio, battrs.rgb_bg_color,
|
||||
fattrs.rgb_bg_color);
|
||||
|
||||
cattrs.hl_blend = -1; // blend property was consumed
|
||||
|
||||
HlKind kind = *through ? kHlBlendThrough : kHlBlend;
|
||||
id = get_attr_entry((HlEntry){ .attr = cattrs, .kind = kind,
|
||||
.id1 = back_attr, .id2 = front_attr });
|
||||
|
@ -614,6 +617,10 @@ Dictionary hlattrs2dict(HlAttrs ae, bool use_rgb)
|
|||
}
|
||||
}
|
||||
|
||||
if (ae.hl_blend > -1) {
|
||||
PUT(hl, "blend", INTEGER_OBJ(ae.hl_blend));
|
||||
}
|
||||
|
||||
return hl;
|
||||
}
|
||||
|
||||
|
|
|
@ -662,6 +662,7 @@ void terminal_get_line_attributes(Terminal *term, win_T *wp, int linenr,
|
|||
.rgb_fg_color = vt_fg,
|
||||
.rgb_bg_color = vt_bg,
|
||||
.rgb_sp_color = -1,
|
||||
.hl_blend = -1,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -4365,7 +4365,11 @@ describe('floating windows', function()
|
|||
[5] = {foreground = tonumber('0x990000'), background = tonumber('0xfff1ff')},
|
||||
[6] = {foreground = tonumber('0x332533'), background = tonumber('0xfff1ff')},
|
||||
[7] = {background = tonumber('0xffcfff'), bold = true, foreground = tonumber('0x0000d8')},
|
||||
[8] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1}
|
||||
[8] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1},
|
||||
[9] = {background = Screen.colors.LightMagenta, blend=30},
|
||||
[10] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend=0},
|
||||
[11] = {foreground = Screen.colors.Red, background = Screen.colors.LightMagenta, blend=80},
|
||||
[12] = {background = Screen.colors.LightMagenta, bold = true, foreground = Screen.colors.Blue1, blend=30},
|
||||
})
|
||||
insert([[
|
||||
Lorem ipsum dolor sit amet, consectetur
|
||||
|
@ -4445,9 +4449,9 @@ describe('floating windows', function()
|
|||
qui officia deserunt mollit anim id est |
|
||||
laborum^. |
|
||||
## grid 4
|
||||
{1:test }|
|
||||
{1: }|
|
||||
{1:popup text }|
|
||||
{9:test }|
|
||||
{9: }|
|
||||
{9:popup text }|
|
||||
]], float_pos={[4] = {{id = 1002}, "NW", 1, 2, 5, true}}, unchanged=true}
|
||||
else
|
||||
screen:expect([[
|
||||
|
@ -4487,9 +4491,9 @@ describe('floating windows', function()
|
|||
qui officia deserunt mollit anim id est |
|
||||
laborum^. |
|
||||
## grid 4
|
||||
{1:test }|
|
||||
{1: }|
|
||||
{4:popup text}{1: }|
|
||||
{9:test }|
|
||||
{9: }|
|
||||
{10:popup text}{9: }|
|
||||
]], float_pos={[4] = {{id = 1002}, "NW", 1, 2, 5, true}}}
|
||||
else
|
||||
screen:expect([[
|
||||
|
@ -4497,7 +4501,7 @@ describe('floating windows', function()
|
|||
exercitation ullamco laboris nisi ut aliquip ex |
|
||||
ea co{2:test}{3:o consequat}. Duis aute irure dolor in |
|
||||
repre{3:henderit in vol}uptate velit esse cillum |
|
||||
dolor{4:popup text}{3:ul}la pariatur. Excepteur sint |
|
||||
dolor{10:popup text}{3:ul}la pariatur. Excepteur sint |
|
||||
occaecat cupidatat non proident, sunt in culpa |
|
||||
qui officia deserunt mollit anim id est |
|
||||
laborum^. |
|
||||
|
@ -4528,9 +4532,9 @@ describe('floating windows', function()
|
|||
qui officia deserunt mollit anim id est |
|
||||
laborum^. |
|
||||
## grid 4
|
||||
{1:test }|
|
||||
{1: }|
|
||||
{4:popup text}{1: }|
|
||||
{9:test }|
|
||||
{9: }|
|
||||
{11:popup text}{9: }|
|
||||
]], float_pos={[4] = {{id = 1002}, "NW", 1, 2, 5, true}}, unchanged=true}
|
||||
else
|
||||
screen:expect([[
|
||||
|
@ -4570,9 +4574,9 @@ describe('floating windows', function()
|
|||
qui officia deserunt mollit anim id est |
|
||||
laborum^. |
|
||||
## grid 4
|
||||
{4:popup text}{1: }|
|
||||
{8:~ }|
|
||||
{8:~ }|
|
||||
{11:popup text}{9: }|
|
||||
{12:~ }|
|
||||
{12:~ }|
|
||||
]], float_pos={[4] = {{id = 1002}, "NW", 1, 2, 5, true}}}
|
||||
else
|
||||
meths.input_mouse('wheel', 'down', '', 0, 4, 7)
|
||||
|
@ -4672,7 +4676,7 @@ describe('floating windows', function()
|
|||
[2] = {foreground = Screen.colors.Grey0, background = tonumber('0xffcfff')},
|
||||
[3] = {bold = true, foreground = Screen.colors.Blue1},
|
||||
[4] = {background = tonumber('0xffcfff'), bold = true, foreground = tonumber('0xb282ff')},
|
||||
[5] = {background = Screen.colors.LightMagenta},
|
||||
[5] = {background = Screen.colors.LightMagenta, blend=30},
|
||||
})
|
||||
if multigrid then
|
||||
screen:expect{grid=[[
|
||||
|
|
|
@ -1644,6 +1644,7 @@ describe('builtin popupmenu', function()
|
|||
[42] = {foreground = tonumber('0x0c0c0c'), background = tonumber('0xe5a8e5')},
|
||||
[43] = {background = tonumber('0x7f5d7f'), bold = true, foreground = tonumber('0x3f3f3f')},
|
||||
[44] = {foreground = tonumber('0x3f3f3f'), background = tonumber('0x7f5d7f')},
|
||||
[45] = {background = Screen.colors.WebGray, blend=0},
|
||||
})
|
||||
command('syntax on')
|
||||
command('set mouse=a')
|
||||
|
@ -1761,7 +1762,7 @@ describe('builtin popupmenu', function()
|
|||
Lorem ipsum d{1:ol}or sit amet, consectetur |
|
||||
adipisicing elit, sed do eiusmod tempor |
|
||||
bla bla incididunt^ |
|
||||
incidid{22: incididunt }{27: }d{1:ol}ore magna aliqua. |
|
||||
incidid{45: incididunt }{27: }d{1:ol}ore magna aliqua. |
|
||||
Ut enim{28: }{29:ut}{28: minim veniam}{25:,} quis nostrud |
|
||||
exercit{28:a}{29:labore}{28:llamco la}{25:b}oris nisi ut aliquip ex |
|
||||
{2:[No Nam}{30:e}{43:et}{30:[+] }{32: }{2: }|
|
||||
|
|
|
@ -1496,7 +1496,7 @@ function Screen:_equal_attrs(a, b)
|
|||
a.underline == b.underline and a.undercurl == b.undercurl and
|
||||
a.italic == b.italic and a.reverse == b.reverse and
|
||||
a.foreground == b.foreground and a.background == b.background and
|
||||
a.special == b.special
|
||||
a.special == b.special and a.blend == b.blend
|
||||
end
|
||||
|
||||
function Screen:_equal_info(a, b)
|
||||
|
|
Loading…
Reference in New Issue