0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.0.0964: status line not redrawn when 'splitkeep' is "screen"

Problem:    Status line of other window not redrawn when dragging it when
            'splitkeep' is set to "screen".
Solution:   Set w_redr_status earlier. (Luuk van Baal, closes #11635,
            closes #11632)
This commit is contained in:
Luuk van Baal
2022-11-28 16:49:36 +00:00
committed by Bram Moolenaar
parent 269aa2b29a
commit 74a694dbe2
4 changed files with 31 additions and 1 deletions

View File

@@ -0,0 +1,10 @@
|a+0&#ffffff0| @73
|b| @73
|c| @73
|~+0#4040ff13&| @73
|~| @73
|[+1#0000000&|N|o| |N|a|m|e|]| @47|1|,|1| @11|A|l@1
>b+0&&| @73
|c| @73
|[+3&&|N|o| |N|a|m|e|]| @47|2|,|1| @11|B|o|t
|:+0&&|c|a|l@1| |w|i|n|_|m|o|v|e|_|s|t|a|t|u|s|l|i|n|e|(|w|i|n|,| |1|)| @41

View File

@@ -1895,4 +1895,22 @@ function Test_splitkeep_fold()
call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {})
endfunction
function Test_splitkeep_status()
CheckScreendump
let lines =<< trim END
call setline(1, ['a', 'b', 'c'])
set nomodified
set splitkeep=screen
let win = winnr()
wincmd s
wincmd j
END
call writefile(lines, 'XTestSplitkeepStatus', 'D')
let buf = RunVimInTerminal('-S XTestSplitkeepStatus', #{rows: 10})
call term_sendkeys(buf, ":call win_move_statusline(win, 1)\<CR>")
call VerifyScreenDump(buf, 'Test_splitkeep_status_1', {})
endfunction
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
964,
/**/
963,
/**/

View File

@@ -6832,6 +6832,7 @@ win_new_height(win_T *wp, int height)
wp->w_height = height;
wp->w_skipcol = 0;
wp->w_redr_status = TRUE;
win_comp_scroll(wp);
// There is no point in adjusting the scroll position when exiting. Some
@@ -6958,7 +6959,6 @@ scroll_to_fraction(win_T *wp, int prev_height)
wp->w_prev_fraction_row = wp->w_wrow;
redraw_win_later(wp, UPD_SOME_VALID);
wp->w_redr_status = TRUE;
invalidate_botline_win(wp);
}