]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.0964: status line not redrawn when 'splitkeep' is "screen" v9.0.0964
authorLuuk van Baal <luukvbaal@gmail.com>
Mon, 28 Nov 2022 16:49:36 +0000 (16:49 +0000)
committerBram Moolenaar <Bram@vim.org>
Mon, 28 Nov 2022 16:49:36 +0000 (16:49 +0000)
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)

src/testdir/dumps/Test_splitkeep_status_1.dump [new file with mode: 0644]
src/testdir/test_window_cmd.vim
src/version.c
src/window.c

diff --git a/src/testdir/dumps/Test_splitkeep_status_1.dump b/src/testdir/dumps/Test_splitkeep_status_1.dump
new file mode 100644 (file)
index 0000000..1131c69
--- /dev/null
@@ -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
index 7aecb92bd93770e0a38199bf6fbbcc19f9f4e84e..3519a1dce301585b757531edacc84fb8efb78702 100644 (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
index b51c90480013de1e42e8f4e10fced5cf0c29bf68..e53ad971f0f0978a4492f3e03c7d7428d23cd124 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    964,
 /**/
     963,
 /**/
index a2bebcaea4dfb57142928e57bb716830c25cad06..869c985358a82be40046e24061654b8e695a35d9 100644 (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);
 }