mirror of
https://github.com/neovim/neovim.git
synced 2025-10-07 10:26:31 +00:00
vim-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 vim/vim#12376)
6c018680be
This commit is contained in:
@@ -2090,10 +2090,9 @@ void scroll_cursor_halfway(bool atend, bool prefer_above)
|
||||
colnr_T skipcol = 0;
|
||||
|
||||
int want_height;
|
||||
bool smooth_scroll = false;
|
||||
if (curwin->w_p_sms && curwin->w_p_wrap) {
|
||||
bool 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_inner - used) / 2;
|
||||
used = 0;
|
||||
@@ -2106,7 +2105,7 @@ void scroll_cursor_halfway(bool atend, bool prefer_above)
|
||||
while (topline > 1) {
|
||||
// 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(curwin, &loff, false);
|
||||
if (loff.height == MAXCOL) {
|
||||
break;
|
||||
@@ -2190,7 +2189,7 @@ void scroll_cursor_halfway(bool atend, bool prefer_above)
|
||||
if (skipcol != 0) {
|
||||
curwin->w_skipcol = skipcol;
|
||||
redraw_later(curwin, UPD_NOT_VALID);
|
||||
} else {
|
||||
} else if (do_sms) {
|
||||
reset_skipcol(curwin);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user