aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-05-28 15:12:42 +0800
committerGitHub <noreply@github.com>2022-05-28 15:12:42 +0800
commit77d9c672f82d260dc5421519a2f78ed1acc95d6a (patch)
tree61341cf26ae0317caa2ab4ffe24dd27461f5bf63
parent285e73894250204ec423495288a6c28baddd9c59 (diff)
downloadrneovim-77d9c672f82d260dc5421519a2f78ed1acc95d6a.tar.gz
rneovim-77d9c672f82d260dc5421519a2f78ed1acc95d6a.tar.bz2
rneovim-77d9c672f82d260dc5421519a2f78ed1acc95d6a.zip
fix(winbar): fix winbar disappear or glitch when moving a split (#18775)
-rw-r--r--src/nvim/window.c3
-rw-r--r--test/functional/ui/winbar_spec.lua36
2 files changed, 38 insertions, 1 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 7b49a3b2d8..58722b1756 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -1334,7 +1334,6 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
set_fraction(oldwin);
}
wp->w_fraction = oldwin->w_fraction;
- wp->w_winbar_height = oldwin->w_winbar_height;
if (flags & WSP_VERT) {
wp->w_p_scr = curwin->w_p_scr;
@@ -1571,6 +1570,8 @@ static void win_init(win_T *newp, win_T *oldp, int flags)
copyFoldingState(oldp, newp);
win_init_some(newp, oldp);
+
+ newp->w_winbar_height = oldp->w_winbar_height;
}
/*
diff --git a/test/functional/ui/winbar_spec.lua b/test/functional/ui/winbar_spec.lua
index d4c6d50fed..476da0d19f 100644
--- a/test/functional/ui/winbar_spec.lua
+++ b/test/functional/ui/winbar_spec.lua
@@ -459,4 +459,40 @@ describe('winbar', function()
|
]]}
end)
+
+ it('works correctly when moving a split', function()
+ screen:try_resize(45, 6)
+ command('set winbar=')
+ command('vsplit')
+ command('setlocal winbar=foo')
+ screen:expect([[
+ {1:foo }│ |
+ ^ │{3:~ }|
+ {3:~ }│{3:~ }|
+ {3:~ }│{3:~ }|
+ {4:[No Name] }{2:[No Name] }|
+ |
+ ]])
+
+ command('wincmd L')
+ screen:expect([[
+ │{1:foo }|
+ {3:~ }│^ |
+ {3:~ }│{3:~ }|
+ {3:~ }│{3:~ }|
+ {2:[No Name] }{4:[No Name] }|
+ |
+ ]])
+
+ command('wincmd w')
+ command('wincmd L')
+ screen:expect([[
+ {1:foo }│^ |
+ │{3:~ }|
+ {3:~ }│{3:~ }|
+ {3:~ }│{3:~ }|
+ {2:[No Name] }{4:[No Name] }|
+ |
+ ]])
+ end)
end)