aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-05-02 22:40:31 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-05-02 22:43:02 -0400
commit049321c357c837c8dc7138f755996e9b8a46b8c5 (patch)
tree94b1cb33ada2ff7736d097c219380c411998dfde
parent31755783e330d5b3761fc471ae512d61638cae9d (diff)
downloadrneovim-049321c357c837c8dc7138f755996e9b8a46b8c5.tar.gz
rneovim-049321c357c837c8dc7138f755996e9b8a46b8c5.tar.bz2
rneovim-049321c357c837c8dc7138f755996e9b8a46b8c5.zip
vim-patch:8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Problem: No cmdline redraw when tabpages have different 'cmdheight'. Solution: redraw the command line when 'cmdheight' changes when switching tabpages. (closes vim/vim#4321) https://github.com/vim/vim/commit/0fef0aeb1ca6c85df0a656a70b6ca49c34563c89
-rw-r--r--src/nvim/testdir/test_tabpage.vim24
-rw-r--r--src/nvim/window.c3
2 files changed, 27 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_tabpage.vim b/src/nvim/testdir/test_tabpage.vim
index 48ac6eb2f2..3c26717b96 100644
--- a/src/nvim/testdir/test_tabpage.vim
+++ b/src/nvim/testdir/test_tabpage.vim
@@ -1,5 +1,6 @@
" Tests for tabpage
+" source screendump.vim
function Test_tabpage()
bw!
@@ -555,4 +556,27 @@ func Test_tabs()
bw!
endfunc
+func Test_tabpage_cmdheight()
+ if !CanRunVimInTerminal()
+ throw 'Skipped: only works with terminal'
+ endif
+ call writefile([
+ \ 'set laststatus=2',
+ \ 'set cmdheight=2',
+ \ 'tabnew',
+ \ 'set cmdheight=3',
+ \ 'tabnext',
+ \ 'redraw!',
+ \ 'echo "hello\nthere"',
+ \ 'tabnext',
+ \ 'redraw',
+ \ ], 'XTest_tabpage_cmdheight')
+ " Check that cursor line is concealed
+ let buf = RunVimInTerminal('-S XTest_tabpage_cmdheight', {'statusoff': 3})
+ call VerifyScreenDump(buf, 'Test_tabpage_cmdheight', {})
+
+ call StopVimInTerminal(buf)
+ call delete('XTest_conceal')
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/nvim/window.c b/src/nvim/window.c
index d9898533da..c6270d6c76 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -3793,6 +3793,9 @@ static void enter_tabpage(tabpage_T *tp, buf_T *old_curbuf, int trigger_enter_au
* the frames for that. When the Vim window was resized need to update
* frame sizes too. Use the stored value of p_ch, so that it can be
* different for each tab page. */
+ if (p_ch != curtab->tp_ch_used) {
+ clear_cmdline = true;
+ }
p_ch = curtab->tp_ch_used;
if (curtab->tp_old_Rows != Rows || (old_off != firstwin->w_winrow
))