# HG changeset patch # User Bram Moolenaar # Date 1685974504 -7200 # Node ID e80fa10e05494e905899ff8de8e99f6824362403 # Parent 0632ef23eb80684bfd4e39b5e57d5db1f4adba40 patch 9.0.1608: update_topline() is called twice Commit: https://github.com/vim/vim/commit/5c606846b9a43c7e6b94c7e96838f7532792f557 Author: Luuk van Baal Date: Mon Jun 5 15:00:05 2023 +0100 patch 9.0.1608: update_topline() is called twice Problem: update_topline() is called twice. Solution: Do not call update_topline() before curs_columns(). (Luuk van Baal, closes #12495) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1608, +/**/ 1607, /**/ 1606, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -7032,11 +7032,8 @@ scroll_to_fraction(win_T *wp, int prev_h } if (wp == curwin) - { - if (get_scrolloff_value()) - update_topline(); curs_columns(FALSE); // validate w_wrow - } + if (prev_height > 0) wp->w_prev_fraction_row = wp->w_wrow; @@ -7055,13 +7052,10 @@ win_new_width(win_T *wp, int width) wp->w_lines_valid = 0; changed_line_abv_curs_win(wp); invalidate_botline_win(wp); - if (wp == curwin) - { - skip_update_topline = (*p_spk != 'c'); - update_topline(); + + if (wp == curwin && *p_spk == 'c') curs_columns(TRUE); // validate w_wrow - skip_update_topline = FALSE; - } + redraw_win_later(wp, UPD_NOT_VALID); wp->w_redr_status = TRUE; }