Mercurial > vim
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(); } }