changeset 30251:0288baaedf91 v9.0.0461

patch 9.0.0461: 'scroll' is not always updated Commit: https://github.com/vim/vim/commit/470a14140bc06f1653edf26ab0b3c9b801080353 Author: Luuk van Baal <luukvbaal@gmail.com> Date: Wed Sep 14 01:27:23 2022 +0100 patch 9.0.0461: 'scroll' is not always updated Problem: 'scroll' is not always updated. Solution: Call win_init_size() at the right place.
author Bram Moolenaar <Bram@vim.org>
date Wed, 14 Sep 2022 02:30:03 +0200
parents c3b37b9e8919
children 6ee5aa4259af
files src/main.c src/testdir/test_window_cmd.vim src/version.c src/window.c
diffstat 4 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/main.c
+++ b/src/main.c
@@ -375,6 +375,7 @@ main
      * Set the default values for the options that use Rows and Columns.
      */
     ui_get_shellsize();		// inits Rows and Columns
+    win_init_size();
 #ifdef FEAT_DIFF
     // Set the 'diff' option now, so that it can be checked for in a .vimrc
     // file.  There is no buffer yet though.
@@ -539,9 +540,9 @@ vim_main2(void)
 	// don't have them.
 	if (!gui.in_use && params.evim_mode)
 	    mch_exit(1);
+	firstwin->w_prev_height = firstwin->w_height; // may have changed
     }
 #endif
-    win_init_size();
 
 #ifdef FEAT_VIMINFO
     /*
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -1668,6 +1668,7 @@ func Test_splitscroll_with_splits()
               execute 'norm gg' . pos
               split | redraw | wincmd k
               call assert_equal(1, line("w0"))
+              call assert_equal(&scroll, winheight(0) / 2)
               wincmd j
               call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
 
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    461,
+/**/
     460,
 /**/
     459,
--- a/src/window.c
+++ b/src/window.c
@@ -6384,6 +6384,7 @@ win_fix_scroll(int resize)
 	    invalidate_botline_win(wp);
 	    validate_botline_win(wp);
 	}
+	win_comp_scroll(wp);
 	wp->w_prev_height = wp->w_height;
 	wp->w_prev_winrow = wp->w_winrow;
     }