mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(ui): setting 'cmdheight' with global statusline (#20515)
This commit is contained in:
parent
bcef006da6
commit
d191070913
@ -2469,7 +2469,7 @@ static char *set_num_option(int opt_idx, char_u *varp, long value, char *errbuf,
|
|||||||
// Only compute the new window layout when startup has been
|
// Only compute the new window layout when startup has been
|
||||||
// completed. Otherwise the frame sizes may be wrong.
|
// completed. Otherwise the frame sizes may be wrong.
|
||||||
if ((p_ch != old_value
|
if ((p_ch != old_value
|
||||||
|| tabline_height() + topframe->fr_height != Rows - p_ch)
|
|| tabline_height() + global_stl_height() + topframe->fr_height != Rows - p_ch)
|
||||||
&& full_screen) {
|
&& full_screen) {
|
||||||
command_height();
|
command_height();
|
||||||
}
|
}
|
||||||
|
@ -6409,7 +6409,7 @@ void command_height(void)
|
|||||||
curtab->tp_ch_used = p_ch;
|
curtab->tp_ch_used = p_ch;
|
||||||
|
|
||||||
// Update cmdline_row to what it should be: just below the last window.
|
// Update cmdline_row to what it should be: just below the last window.
|
||||||
cmdline_row = topframe->fr_height + tabline_height();
|
cmdline_row = topframe->fr_height + tabline_height() + global_stl_height();
|
||||||
|
|
||||||
// If cmdline_row is smaller than what it is supposed to be for 'cmdheight'
|
// If cmdline_row is smaller than what it is supposed to be for 'cmdheight'
|
||||||
// then set old_p_ch to what it would be, so that the windows get resized
|
// then set old_p_ch to what it would be, so that the windows get resized
|
||||||
|
@ -178,6 +178,7 @@ describe('global statusline', function()
|
|||||||
[2] = {bold = true, reverse = true};
|
[2] = {bold = true, reverse = true};
|
||||||
[3] = {bold = true};
|
[3] = {bold = true};
|
||||||
[4] = {reverse = true};
|
[4] = {reverse = true};
|
||||||
|
[5] = {bold = true, foreground = Screen.colors.Fuchsia};
|
||||||
})
|
})
|
||||||
command('set laststatus=3')
|
command('set laststatus=3')
|
||||||
command('set ruler')
|
command('set ruler')
|
||||||
@ -398,6 +399,106 @@ describe('global statusline', function()
|
|||||||
meths.input_mouse('left', 'drag', '', 0, 14, 10)
|
meths.input_mouse('left', 'drag', '', 0, 14, 10)
|
||||||
eq(1, meths.get_option('cmdheight'))
|
eq(1, meths.get_option('cmdheight'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('cmdline row is correct after setting cmdheight #20514', function()
|
||||||
|
command('botright split test/functional/fixtures/bigfile.txt')
|
||||||
|
meths.set_option('cmdheight', 1)
|
||||||
|
feed('L')
|
||||||
|
screen:expect([[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
────────────────────────────────────────────────────────────|
|
||||||
|
0000;<control>;Cc;0;BN;;;;;N;NULL;;;; |
|
||||||
|
0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;; |
|
||||||
|
0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; |
|
||||||
|
0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; |
|
||||||
|
0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; |
|
||||||
|
0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; |
|
||||||
|
^0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; |
|
||||||
|
{2:test/functional/fixtures/bigfile.txt 7,1 Top}|
|
||||||
|
|
|
||||||
|
]])
|
||||||
|
feed('j')
|
||||||
|
screen:expect([[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
────────────────────────────────────────────────────────────|
|
||||||
|
0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;; |
|
||||||
|
0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; |
|
||||||
|
0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; |
|
||||||
|
0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; |
|
||||||
|
0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; |
|
||||||
|
0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; |
|
||||||
|
^0007;<control>;Cc;0;BN;;;;;N;BELL;;;; |
|
||||||
|
{2:test/functional/fixtures/bigfile.txt 8,1 0%}|
|
||||||
|
|
|
||||||
|
]])
|
||||||
|
meths.set_option('showtabline', 2)
|
||||||
|
screen:expect([[
|
||||||
|
{3: }{5:2}{3: t/f/f/bigfile.txt }{4: }|
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
────────────────────────────────────────────────────────────|
|
||||||
|
0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; |
|
||||||
|
0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; |
|
||||||
|
0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; |
|
||||||
|
0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; |
|
||||||
|
0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; |
|
||||||
|
^0007;<control>;Cc;0;BN;;;;;N;BELL;;;; |
|
||||||
|
{2:test/functional/fixtures/bigfile.txt 8,1 0%}|
|
||||||
|
|
|
||||||
|
]])
|
||||||
|
meths.set_option('cmdheight', 0)
|
||||||
|
screen:expect([[
|
||||||
|
{3: }{5:2}{3: t/f/f/bigfile.txt }{4: }|
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
────────────────────────────────────────────────────────────|
|
||||||
|
0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;; |
|
||||||
|
0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; |
|
||||||
|
0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; |
|
||||||
|
0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; |
|
||||||
|
0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; |
|
||||||
|
0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; |
|
||||||
|
^0007;<control>;Cc;0;BN;;;;;N;BELL;;;; |
|
||||||
|
{2:test/functional/fixtures/bigfile.txt 8,1 0%}|
|
||||||
|
]])
|
||||||
|
meths.set_option('cmdheight', 1)
|
||||||
|
screen:expect([[
|
||||||
|
{3: }{5:2}{3: t/f/f/bigfile.txt }{4: }|
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
────────────────────────────────────────────────────────────|
|
||||||
|
0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; |
|
||||||
|
0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; |
|
||||||
|
0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; |
|
||||||
|
0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; |
|
||||||
|
0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; |
|
||||||
|
^0007;<control>;Cc;0;BN;;;;;N;BELL;;;; |
|
||||||
|
{2:test/functional/fixtures/bigfile.txt 8,1 0%}|
|
||||||
|
|
|
||||||
|
]])
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('statusline does not crash if it has Arabic characters #19447', function()
|
it('statusline does not crash if it has Arabic characters #19447', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user