diff src/drawscreen.c @ 30635:604d7d7aa043 v9.0.0652

patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo' Commit: https://github.com/vim/vim/commit/b6aab8f44beb8c5d99393abdc2c9faab085c72aa Author: Bram Moolenaar <Bram@vim.org> Date: Mon Oct 3 20:01:16 2022 +0100 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo' Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'. Solution: Add tests, fix uncovered problem.
author Bram Moolenaar <Bram@vim.org>
date Mon, 03 Oct 2022 21:15:03 +0200
parents 86683eee58ac
children dfb02f9dcbe8
line wrap: on
line diff
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -1552,6 +1552,26 @@ win_update(win_T *wp)
     init_search_hl(wp, &screen_search_hl);
 #endif
 
+    // Make sure skipcol is valid, it depends on various options and the window
+    // width.
+    if (wp->w_skipcol > 0)
+    {
+	int w = 0;
+	int width1 = wp->w_width - win_col_off(wp);
+	int width2 = width1 + win_col_off2(wp);
+	int add = width1;
+
+	while (w < wp->w_skipcol)
+	{
+	    if (w > 0)
+		add = width2;
+	    w += add;
+	}
+	if (w != wp->w_skipcol)
+	    // always round down, the higher value may not be valid
+	    wp->w_skipcol = w - add;
+    }
+
 #ifdef FEAT_LINEBREAK
     // Force redraw when width of 'number' or 'relativenumber' column
     // changes.