diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-01-19 15:45:17 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-01-19 15:45:17 +0100 |
commit | 479950f6c9aee4806f28a2b2fe5471e18a034cff (patch) | |
tree | 6b535f41e4ae3870326ca8d491fdf2edad30aacd /src/window.c | |
parent | 904edabb64422467bf79f48f3a6305e0eddeea94 (diff) | |
download | vim-git-479950f6c9aee4806f28a2b2fe5471e18a034cff.tar.gz |
patch 8.2.0131: command line is not cleared when switching tabsv8.2.0131
Problem: Command line is not cleared when switching tabs and the command
line height differs.
Solution: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
closes #5495)
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c index b66fb34fe..1096b6017 100644 --- a/src/window.c +++ b/src/window.c @@ -4093,6 +4093,7 @@ enter_tabpage( int trigger_enter_autocmds, int trigger_leave_autocmds) { + int row; int old_off = tp->tp_firstwin->w_winrow; win_T *next_prevwin = tp->tp_prevwin; @@ -4109,7 +4110,7 @@ enter_tabpage( prevwin = next_prevwin; last_status(FALSE); // status line may appear or disappear - (void)win_comp_pos(); // recompute w_winrow for all windows + row = win_comp_pos(); // recompute w_winrow for all windows #ifdef FEAT_DIFF diff_need_scrollbind = TRUE; #endif @@ -4121,6 +4122,13 @@ enter_tabpage( if (p_ch != curtab->tp_ch_used) clear_cmdline = TRUE; p_ch = curtab->tp_ch_used; + + // When cmdheight is changed in a tab page with '<C-w>-', cmdline_row is + // changed but p_ch and tp_ch_used are not changed. Thus we also need to + // check cmdline_row. + if ((row < cmdline_row) && (cmdline_row <= Rows - p_ch)) + clear_cmdline = TRUE; + if (curtab->tp_old_Rows != Rows || (old_off != firstwin->w_winrow #ifdef FEAT_GUI_TABLINE && !gui_use_tabline() |