Problem: Custom statusline not drawn correctly with WinBar.
Solution: Also adjust the column for the custom status line. (Yee Cheng
Chin, closes #8047)
/*
* Return the row for drawing the statusline and the ruler of window "wp".
*/
- static int
+ int
statusline_row(win_T *wp)
{
#if defined(FEAT_PROP_POPUP)
/* drawscreen.c */
int update_screen(int type_arg);
+int statusline_row(win_T *wp);
void showruler(int always);
void win_redr_ruler(win_T *wp, int always, int ignore_pum);
void after_updating_screen(int may_resize_shell);
}
else
{
- row = W_WINROW(wp) + wp->w_height;
+ row = statusline_row(wp);
fillchar = fillchar_status(&attr, wp);
maxwidth = wp->w_width;
--- /dev/null
+|a+1&#ffffff0|b|c|d|e| @69
+> +0&&@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|a+3#0000000&|b|c|d|e| @69
+| +0&&@74
call delete('XtestWinbarNotVisble')
endfunction
+func Test_winbar_not_visible_custom_statusline()
+ CheckScreendump
+
+ let lines =<< trim END
+ split
+ nnoremenu WinBar.Test :test
+ set winminheight=0
+ set statusline=abcde
+ wincmd j
+ wincmd _
+ END
+ call writefile(lines, 'XtestWinbarNotVisble')
+ let buf = RunVimInTerminal('-S XtestWinbarNotVisble', #{rows: 10})
+ call VerifyScreenDump(buf, 'Test_winbar_not_visible_custom_statusline', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ call delete('XtestWinbarNotVisble')
+endfunction
+
" vim: shiftwidth=2 sts=2 expandtab
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2685,
/**/
2684,
/**/