patch 9.2.0445: win_fix_scroll() called before win_comp_pos() in command_height()
Commit:
https://github.com/vim/vim/commit/40fc78f0a185f003844334e7c9dd217d6d993143
Author: Jesse Rosenstock <
j...@google.com>
Date: Tue May 5 19:50:46 2026 +0000
patch 9.2.0445: win_fix_scroll() called before win_comp_pos() in command_height()
Problem: win_fix_scroll(true) is called before win_comp_pos() in
command_height().
Solution: Move win_fix_scroll(true) after win_comp_pos(), matching the
ordering used in win_drag_status_line() (Jesse Rosenstock).
Patch 9.2.0413 added win_fix_scroll(true) to command_height() to handle
splitkeep when cmdheight changes, but placed the call before win_comp_pos().
win_fix_scroll() reads w_winrow to detect window movement
(
https://github.com/vim/vim/blob/620557bd48865fa3d927901764d2747bf68597b5/src/window.c#L7266),
but w_winrow is not recomputed until win_comp_pos() runs
(
https://github.com/vim/vim/blob/620557bd48865fa3d927901764d2747bf68597b5/src/window.c#L6516).
This causes incorrect scroll adjustments and was breaking
Test_smoothscroll_incsearch on macOS CI.
closes: #20138
Co-authored-by: Gemini
Signed-off-by: Jesse Rosenstock <
j...@google.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/src/version.c b/src/version.c
index a859c2ced..4d3f68d05 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 445,
/**/
444,
/**/
diff --git a/src/window.c b/src/window.c
index 8813ffa80..eb4e494d1 100644
--- a/src/window.c
+++ b/src/window.c
@@ -7591,10 +7591,10 @@ command_height(void)
}
if (p_ch < old_p_ch && command_frame_height && frp != NULL)
frame_add_height(frp, (int)(old_p_ch - p_ch));
- win_fix_scroll(true);
// Recompute window positions.
win_comp_pos();
+ win_fix_scroll(true);
cmdline_row = Rows - p_ch;
redraw_cmdline = TRUE;