fix(ui): require window-local value to show winbar on floating windows (#18773)

Previously, there was a bug where setting the local value of 'winbar' to
itself would cause winbar to appear on a floating window, which is
undesirable. This fix makes it so that it's explicitly required for the
window-local value of 'winbar' for a floating window to be set in order
for winbar to be shown on that window.
This commit is contained in:
Famiu Haque
2022-05-28 04:57:20 +06:00
committed by GitHub
parent e2940d3c79
commit 826462a8f0
3 changed files with 48 additions and 1 deletions

View File

@@ -23,6 +23,8 @@ describe('winbar', function()
[5] = {bold = true, foreground = Screen.colors.Red},
[6] = {foreground = Screen.colors.Blue},
[7] = {background = Screen.colors.LightGrey},
[8] = {background = Screen.colors.LightMagenta},
[9] = {bold = true, foreground = Screen.colors.Blue, background = Screen.colors.LightMagenta},
})
meths.set_option('winbar', 'Set Up The Bars')
end)
@@ -399,6 +401,7 @@ describe('winbar', function()
]])
eq(1, meths.get_option('cmdheight'))
end)
it('properly equalizes window height for window-local value', function()
command('set equalalways | set winbar= | setlocal winbar=a | split')
command('setlocal winbar= | split')
@@ -419,4 +422,41 @@ describe('winbar', function()
|
]])
end)
it('requires window-local value for floating windows', function()
local win = meths.open_win(0, false, { relative = 'editor', row = 2, col = 10, height = 7,
width = 30 })
meths.set_option_value('winbar', 'bar', {})
screen:expect{grid=[[
{1:bar }|
^ |
{3:~ }{8: }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }|
{3:~ }|
{3:~ }|
|
]]}
meths.set_option_value('winbar', 'floaty bar', { scope = 'local', win = win.id })
screen:expect{grid=[[
{1:bar }|
^ |
{3:~ }{1:floaty bar }{3: }|
{3:~ }{8: }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }{9:~ }{3: }|
{3:~ }|
{3:~ }|
{3:~ }|
|
]]}
end)
end)