0
0
mirror of https://github.com/vim/vim.git synced 2025-10-02 05:04:20 -04:00

patch 8.2.1164: text cleared by checking terminal properties not redrawn

Problem:    Text cleared by checking terminal properties not redrawn. (Alexey
            Radkov)
Solution:   Mark the screen characters as invalid. (closes #6422)
This commit is contained in:
Bram Moolenaar
2020-07-08 23:09:28 +02:00
parent 6e13530ca0
commit 96916ac67a
4 changed files with 15 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ int screen_valid(int doclear);
void screenalloc(int doclear); void screenalloc(int doclear);
void free_screenlines(void); void free_screenlines(void);
void screenclear(void); void screenclear(void);
void line_was_clobbered(int screen_lnum);
int can_clear(char_u *p); int can_clear(char_u *p);
void screen_start(void); void screen_start(void);
void windgoto(int row, int col); void windgoto(int row, int col);

View File

@@ -2981,6 +2981,16 @@ lineinvalid(unsigned off, int width)
(void)vim_memset(ScreenAttrs + off, -1, (size_t)width * sizeof(sattr_T)); (void)vim_memset(ScreenAttrs + off, -1, (size_t)width * sizeof(sattr_T));
} }
/*
* To be called when characters were sent to the terminal directly, outputting
* test on "screen_lnum".
*/
void
line_was_clobbered(int screen_lnum)
{
lineinvalid(LineOffset[screen_lnum], (int)Columns);
}
/* /*
* Copy part of a Screenline for vertically split window "wp". * Copy part of a Screenline for vertically split window "wp".
*/ */

View File

@@ -3732,6 +3732,7 @@ check_terminal_behavior(void)
screen_stop_highlight(); screen_stop_highlight();
term_windgoto(1, 0); term_windgoto(1, 0);
out_str((char_u *)" "); out_str((char_u *)" ");
line_was_clobbered(1);
} }
if (xcc_status.tr_progress == STATUS_GET) if (xcc_status.tr_progress == STATUS_GET)
@@ -3761,6 +3762,7 @@ check_terminal_behavior(void)
screen_stop_highlight(); screen_stop_highlight();
term_windgoto(2, 0); term_windgoto(2, 0);
out_str((char_u *)" "); out_str((char_u *)" ");
line_was_clobbered(2);
} }
if (did_send) if (did_send)

View File

@@ -754,6 +754,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 */
/**/
1164,
/**/ /**/
1163, 1163,
/**/ /**/