diff options
author | Luuk van Baal <luukvbaal@gmail.com> | 2022-11-28 16:49:36 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-11-28 16:49:36 +0000 |
commit | 74a694dbe20bb7dea4e06f474cf62e20f9c92f1d (patch) | |
tree | 380e37d2a79c0d6cc76977d9d156bd026299a0ff | |
parent | 269aa2b29ac3e4c0083d929e2477c95e7bd1177a (diff) |
patch 9.0.0964: status line not redrawn when 'splitkeep' is "screen"v9.0.0964
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)
-rw-r--r-- | src/testdir/dumps/Test_splitkeep_status_1.dump | 10 | ||||
-rw-r--r-- | src/testdir/test_window_cmd.vim | 18 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 2 |
4 files changed, 31 insertions, 1 deletions
diff --git a/src/testdir/dumps/Test_splitkeep_status_1.dump b/src/testdir/dumps/Test_splitkeep_status_1.dump new file mode 100644 index 0000000000..1131c69fde --- /dev/null +++ b/src/testdir/dumps/Test_splitkeep_status_1.dump @@ -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 diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim index 7aecb92bd9..3519a1dce3 100644 --- a/src/testdir/test_window_cmd.vim +++ b/src/testdir/test_window_cmd.vim @@ -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 diff --git a/src/version.c b/src/version.c index b51c904800..e53ad971f0 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 964, +/**/ 963, /**/ 962, diff --git a/src/window.c b/src/window.c index a2bebcaea4..869c985358 100644 --- a/src/window.c +++ b/src/window.c @@ -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); } |