Mercurial > vim
diff src/terminal.c @ 24582:1a658c5eb326 v8.2.2830
patch 8.2.2830: terminal colors are not updated when 'background' is set
Commit: https://github.com/vim/vim/commit/ad431995721b2a886f789e2ea7db4c84b732eb18
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon May 3 20:40:38 2021 +0200
patch 8.2.2830: terminal colors are not updated when 'background' is set
Problem: Terminal colors are not updated when 'background' is set.
Solution: Call term_update_colors() for all terminals. (Marcin Szamotulski,
closes #8171, closes #8150)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 03 May 2021 20:45:04 +0200 |
parents | 7a4cc4d3a40a |
children | d957c7bbacf3 |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -4590,9 +4590,9 @@ create_vterm(term_T *term, int rows, int * Called when 'wincolor' was set. */ void -term_update_colors(void) -{ - term_T *term = curwin->w_buffer->b_term; +term_update_colors(term_T *term) +{ + win_T *wp; if (term->tl_vterm == NULL) return; @@ -4602,7 +4602,21 @@ term_update_colors(void) &term->tl_default_color.fg, &term->tl_default_color.bg); - redraw_later(NOT_VALID); + FOR_ALL_WINDOWS(wp) + if (wp->w_buffer == term->tl_buffer) + redraw_win_later(wp, NOT_VALID); +} + +/* + * Called when 'background' was set. + */ + void +term_update_colors_all(void) +{ + term_T *tp; + + FOR_ALL_TERMS(tp) + term_update_colors(tp); } /* @@ -5939,7 +5953,7 @@ f_term_list(typval_T *argvars UNUSED, ty l = rettv->vval.v_list; FOR_ALL_TERMS(tp) - if (tp != NULL && tp->tl_buffer != NULL) + if (tp->tl_buffer != NULL) if (list_append_number(l, (varnumber_T)tp->tl_buffer->b_fnum) == FAIL) return;