diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-10-03 10:23:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-03 10:23:03 +0800 |
commit | e1157324657907fab37de8dea71442802d222dd3 (patch) | |
tree | ac2ad30f54d4260bc8e3acc83235c9754b12a7d4 /src/nvim/drawscreen.c | |
parent | 3c76038755b5c0c63604f2baa481491bb0efe2e1 (diff) | |
download | rneovim-e1157324657907fab37de8dea71442802d222dd3.tar.gz rneovim-e1157324657907fab37de8dea71442802d222dd3.tar.bz2 rneovim-e1157324657907fab37de8dea71442802d222dd3.zip |
fix(terminal): check terminal size at end of screen update (#25480)
Diffstat (limited to 'src/nvim/drawscreen.c')
-rw-r--r-- | src/nvim/drawscreen.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index cc22accf2b..a0cbc60f25 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -1519,16 +1519,12 @@ static void win_update(win_T *wp, DecorProviders *providers) } } - // Force redraw when width of 'number' or 'relativenumber' column - // changes. - int nrwidth = (wp->w_p_nu || wp->w_p_rnu || *wp->w_p_stc) ? number_width(wp) : 0; - if (wp->w_nrwidth != nrwidth) { + const int nrwidth_before = wp->w_nrwidth; + int nrwidth_new = (wp->w_p_nu || wp->w_p_rnu || *wp->w_p_stc) ? number_width(wp) : 0; + // Force redraw when width of 'number' or 'relativenumber' column changes. + if (wp->w_nrwidth != nrwidth_new) { type = UPD_NOT_VALID; - wp->w_nrwidth = nrwidth; - - if (buf->terminal) { - terminal_check_size(buf->terminal); - } + wp->w_nrwidth = nrwidth_new; } else if (buf->b_mod_set && buf->b_mod_xlines != 0 && wp->w_redraw_top != 0) { @@ -2498,6 +2494,10 @@ static void win_update(win_T *wp, DecorProviders *providers) } } + if (nrwidth_before != wp->w_nrwidth && buf->terminal) { + terminal_check_size(buf->terminal); + } + // restore got_int, unless CTRL-C was hit while redrawing if (!got_int) { got_int = save_got_int; |