forked from aniani/vim
patch 8.0.0610: the screen is redrawn when default 'background' is detected
Problem: The screen is redrawn when t_BG is set and used to detect the value for 'background'. Solution: Don't redraw when the value of 'background' didn't change.
This commit is contained in:
14
src/term.c
14
src/term.c
@@ -4385,15 +4385,21 @@ check_termcode(
|
|||||||
if (i - j >= 21 && STRNCMP(tp + j + 3, "rgb:", 4) == 0
|
if (i - j >= 21 && STRNCMP(tp + j + 3, "rgb:", 4) == 0
|
||||||
&& tp[j + 11] == '/' && tp[j + 16] == '/'
|
&& tp[j + 11] == '/' && tp[j + 16] == '/'
|
||||||
&& !option_was_set((char_u *)"bg"))
|
&& !option_was_set((char_u *)"bg"))
|
||||||
{/* TODO: don't set option when already the right value */
|
{
|
||||||
|
char *newval = (3 * '6' < tp[j+7] + tp[j+12]
|
||||||
|
+ tp[j+17]) ? "light" : "dark";
|
||||||
|
|
||||||
LOG_TR("Received RBG");
|
LOG_TR("Received RBG");
|
||||||
rbg_status = RBG_GOT;
|
rbg_status = RBG_GOT;
|
||||||
set_option_value((char_u *)"bg", 0L, (char_u *)(
|
if (STRCMP(p_bg, newval) != 0)
|
||||||
(3 * '6' < tp[j+7] + tp[j+12] + tp[j+17])
|
{
|
||||||
? "light" : "dark"), 0);
|
/* value differs, apply it */
|
||||||
|
set_option_value((char_u *)"bg", 0L,
|
||||||
|
(char_u *)newval, 0);
|
||||||
reset_option_was_set((char_u *)"bg");
|
reset_option_was_set((char_u *)"bg");
|
||||||
redraw_asap(CLEAR);
|
redraw_asap(CLEAR);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* got finished code: consume it */
|
/* got finished code: consume it */
|
||||||
key_name[0] = (int)KS_EXTRA;
|
key_name[0] = (int)KS_EXTRA;
|
||||||
|
@@ -764,6 +764,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
610,
|
||||||
/**/
|
/**/
|
||||||
609,
|
609,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user