diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-05-28 15:12:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-28 15:12:42 +0800 |
commit | 77d9c672f82d260dc5421519a2f78ed1acc95d6a (patch) | |
tree | 61341cf26ae0317caa2ab4ffe24dd27461f5bf63 | |
parent | 285e73894250204ec423495288a6c28baddd9c59 (diff) | |
download | rneovim-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.c | 3 | ||||
-rw-r--r-- | test/functional/ui/winbar_spec.lua | 36 |
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) |