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

@@ -6689,7 +6689,10 @@ static void last_status_rec(frame_T *fr, bool statusline, bool is_stl_global)
void set_winbar(void)
{
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
int winbar_height = (*p_wbr != NUL || *wp->w_p_wbr != NUL) ? 1 : 0;
// Require the local value to be set in order to show winbar on a floating window.
int winbar_height = wp->w_floating ? ((*wp->w_p_wbr != NUL) ? 1 : 0)
: ((*p_wbr != NUL || *wp->w_p_wbr != NUL) ? 1 : 0);
if (wp->w_winbar_height != winbar_height) {
wp->w_winbar_height = winbar_height;
win_set_inner_size(wp);