fix(ui): wincmd _ should not increase 'cmdheight' above 0 (#33056)

(cherry picked from commit 703f4037c4)
This commit is contained in:
luukvbaal
2025-03-27 12:52:46 +01:00
committed by github-actions[bot]
parent 5e4365b83d
commit ccb078bbb0
2 changed files with 11 additions and 5 deletions

View File

@ -196,6 +196,10 @@ win_T *swbuf_goto_win_with_buf(buf_T *buf)
return wp;
}
// 'cmdheight' value explicitly set by the user: window commands are allowed to
// resize the topframe to values higher than this minimum, but not lower.
static OptInt min_set_ch = 1;
/// all CTRL-W window commands are handled here, called from normal_cmd().
///
/// @param xchar extra char from ":wincmd gx" or NUL
@ -513,7 +517,7 @@ newwindow:
// set current window height
case Ctrl__:
case '_':
win_setheight(Prenum ? Prenum : Rows - 1);
win_setheight(Prenum ? Prenum : Rows - (int)min_set_ch);
break;
// increase current window width
@ -3505,10 +3509,6 @@ static bool is_bottom_win(win_T *wp)
return true;
}
// 'cmdheight' value explicitly set by the user: window commands are allowed to
// resize the topframe to values higher than this minimum, but not lower.
static OptInt min_set_ch = 1;
/// Set a new height for a frame. Recursively sets the height for contained
/// frames and windows. Caller must take care of positions.
///

View File

@ -1352,6 +1352,12 @@ describe('cmdline height', function()
-- cmdheight unchanged.
eq(1, eval('&cmdheight'))
end)
it('not increased to 0 from 1 with wincmd _', function()
command('set cmdheight=0 laststatus=0')
command('wincmd _')
eq(0, eval('&cmdheight'))
end)
end)
describe('cmdheight=0', function()