diff src/move.c @ 32421:603b6dcf5f9a v9.0.1542

patch 9.0.1542: line not fully displayed if it doesn't fit in the screen Commit: https://github.com/vim/vim/commit/6c018680be0ec25d42614a93be1ea08df29a9e2a Author: Luuk van Baal <luukvbaal@gmail.com> Date: Thu May 11 18:38:14 2023 +0100 patch 9.0.1542: line not fully displayed if it doesn't fit in the screen Problem: Line not fully displayed if it doesn't fit in the screen. Solution: Do not reset s_skipcol if not needed. (Luuk van Baal, closes #12376)
author Bram Moolenaar <Bram@vim.org>
date Thu, 11 May 2023 19:45:03 +0200
parents f9d4988a86ef
children 9d072cccc8fc
line wrap: on
line diff
--- a/src/move.c
+++ b/src/move.c
@@ -2772,11 +2772,10 @@ scroll_cursor_halfway(int atend, int pre
     topline = loff.lnum;
 
     int want_height;
-    int smooth_scroll = FALSE;
-    if (curwin->w_p_sms && curwin->w_p_wrap)
+    int do_sms = curwin->w_p_wrap && curwin->w_p_sms;
+    if (do_sms)
     {
 	// 'smoothscroll' and 'wrap' are set
-	smooth_scroll = TRUE;
 	if (atend)
 	{
 	    want_height = (curwin->w_height - used) / 2;
@@ -2790,7 +2789,7 @@ scroll_cursor_halfway(int atend, int pre
     {
 	// If using smoothscroll, we can precisely scroll to the
 	// exact point where the cursor is halfway down the screen.
-	if (smooth_scroll)
+	if (do_sms)
 	{
 	    topline_back_winheight(&loff, FALSE);
 	    if (loff.height == MAXCOL)
@@ -2892,7 +2891,7 @@ scroll_cursor_halfway(int atend, int pre
 		curwin->w_skipcol = skipcol;
 		redraw_later(UPD_NOT_VALID);
 	    }
-	    else
+	    else if (do_sms)
 		reset_skipcol();
 	}
     }