patch 9.0.0461: 'scroll' is not always updated

Problem:    'scroll' is not always updated.
Solution:   Call win_init_size() at the right place.
diff --git a/src/main.c b/src/main.c
index 619302a..6875ee5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -375,6 +375,7 @@
      * 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 @@
 	// 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
     /*
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 10cf27d..c9f9caa 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -1668,6 +1668,7 @@
               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"))
 
diff --git a/src/version.c b/src/version.c
index ab132ca..62a43a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    461,
+/**/
     460,
 /**/
     459,
diff --git a/src/window.c b/src/window.c
index 49f57b5..6fefcac 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6384,6 +6384,7 @@
 	    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;
     }