From: Luuk van Baal Date: Mon, 5 Jun 2023 14:00:05 +0000 (+0100) Subject: patch 9.0.1608: update_topline() is called twice X-Git-Tag: v9.0.1608 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c606846b9a43c7e6b94c7e96838f7532792f557;p=thirdparty%2Fvim.git 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 index 13a537def8..1a8dd0e604 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1608, /**/ 1607, /**/ diff --git a/src/window.c b/src/window.c index eaf89aa95f..f02aa9f057 100644 --- a/src/window.c +++ b/src/window.c @@ -7032,11 +7032,8 @@ scroll_to_fraction(win_T *wp, int prev_height) } 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; }