diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-08-11 14:13:37 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-11 14:13:37 +0100 |
commit | d4cf9fc53e0b1d36e84d28ecd5595a6f102f325e (patch) | |
tree | 98a005b1fe189f748dbfb09221fcb4e8ca4a066b | |
parent | f797e309caff48f7a56c73b16e62ff67c4dcbdd6 (diff) |
patch 9.0.0191: messages test fails; window size incorrectv9.0.0191
Problem: Messages test fails; window size incorrect when 'cmdheight' is
made smaller.
Solution: Properly cleanup after test with cmdheight zero. Resize windows
correctly when 'cmdheight' gets smaller.
-rw-r--r-- | src/testdir/dumps/Test_changing_cmdheight_5.dump | 8 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 5 | ||||
-rw-r--r-- | src/testdir/test_messages.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 6 |
5 files changed, 26 insertions, 1 deletions
diff --git a/src/testdir/dumps/Test_changing_cmdheight_5.dump b/src/testdir/dumps/Test_changing_cmdheight_5.dump new file mode 100644 index 0000000000..fb2a5215ac --- /dev/null +++ b/src/testdir/dumps/Test_changing_cmdheight_5.dump @@ -0,0 +1,8 @@ +> +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1 +| +0&&@74 diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index 92adbd10b6..521312a8b1 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -239,6 +239,11 @@ func Test_changing_cmdheight() call term_sendkeys(buf, ":set cmdheight-=2\<CR>") call VerifyScreenDump(buf, 'Test_changing_cmdheight_4', {}) + " reducing window size and then setting cmdheight + call term_sendkeys(buf, ":resize -1\<CR>") + call term_sendkeys(buf, ":set cmdheight=1\<CR>") + call VerifyScreenDump(buf, 'Test_changing_cmdheight_5', {}) + " clean up call StopVimInTerminal(buf) call delete('XTest_cmdheight') diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim index 1f1bb9b268..3c3712ea0c 100644 --- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -388,6 +388,7 @@ func Test_fileinfo_after_echo() endfunc func Test_cmdheight_zero() + enew set cmdheight=0 set showcmd redraw! @@ -437,10 +438,13 @@ func Test_cmdheight_zero() 7 call feedkeys(":\"\<C-R>=line('w0')\<CR>\<CR>", "xt") call assert_equal('"1', @:) - bwipe! + bwipe! + bwipe! set cmdheight& set showcmd& + tabnew + tabonly endfunc " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index a9887fa620..c899966256 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 191, +/**/ 190, /**/ 189, diff --git a/src/window.c b/src/window.c index 5b192cc893..7d2fe42a40 100644 --- a/src/window.c +++ b/src/window.c @@ -6555,6 +6555,12 @@ command_height(void) if (p_ch > old_p_ch && cmdline_row <= Rows - p_ch) return; + // 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 + // properly for the new value. + if (cmdline_row < Rows - p_ch) + old_p_ch = Rows - cmdline_row; + // Find bottom frame with width of screen. frp = lastwin->w_frame; while (frp->fr_width != Columns && frp->fr_parent != NULL) |