diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/move.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/move.c b/src/nvim/move.c index 6fb6656472..5d817fd7aa 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -1345,6 +1345,7 @@ bool scrollup(long line_count, int byfold) int width2 = width1 + curwin_col_off2(); unsigned size = 0; linenr_T prev_topline = curwin->w_topline; + const colnr_T prev_skipcol = curwin->w_skipcol; if (do_sms) { size = linetabsize(curwin, curwin->w_topline); @@ -1396,8 +1397,9 @@ bool scrollup(long line_count, int byfold) } } - if (curwin->w_topline == prev_topline) { - // need to redraw even though w_topline didn't change + if (curwin->w_topline == prev_topline + || curwin->w_skipcol != prev_skipcol) { + // need to redraw because wl_size of the topline may now be invalid redraw_later(curwin, UPD_NOT_VALID); } } else { |