diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-07-08 23:09:28 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-07-08 23:09:28 +0200 |
commit | 96916ac67ad9ed5d79ce87b099f9d01aa4c13745 (patch) | |
tree | 9ecc679aa3799d886c894b21adc410b4ca851cb7 /src | |
parent | 6e13530ca03dd9cad245221177dd65f712211448 (diff) |
patch 8.2.1164: text cleared by checking terminal properties not redrawnv8.2.1164
Problem: Text cleared by checking terminal properties not redrawn. (Alexey
Radkov)
Solution: Mark the screen characters as invalid. (closes #6422)
Diffstat (limited to 'src')
-rw-r--r-- | src/proto/screen.pro | 1 | ||||
-rw-r--r-- | src/screen.c | 10 | ||||
-rw-r--r-- | src/term.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 15 insertions, 0 deletions
diff --git a/src/proto/screen.pro b/src/proto/screen.pro index 919bd419b0..3f475ec12c 100644 --- a/src/proto/screen.pro +++ b/src/proto/screen.pro @@ -31,6 +31,7 @@ int screen_valid(int doclear); void screenalloc(int doclear); void free_screenlines(void); void screenclear(void); +void line_was_clobbered(int screen_lnum); int can_clear(char_u *p); void screen_start(void); void windgoto(int row, int col); diff --git a/src/screen.c b/src/screen.c index 01d6257b7c..0d65b4bbdc 100644 --- a/src/screen.c +++ b/src/screen.c @@ -2982,6 +2982,16 @@ lineinvalid(unsigned off, int width) } /* + * 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". */ static void diff --git a/src/term.c b/src/term.c index 3bda87cccc..07acc11b2a 100644 --- a/src/term.c +++ b/src/term.c @@ -3732,6 +3732,7 @@ check_terminal_behavior(void) screen_stop_highlight(); term_windgoto(1, 0); out_str((char_u *)" "); + line_was_clobbered(1); } if (xcc_status.tr_progress == STATUS_GET) @@ -3761,6 +3762,7 @@ check_terminal_behavior(void) screen_stop_highlight(); term_windgoto(2, 0); out_str((char_u *)" "); + line_was_clobbered(2); } if (did_send) diff --git a/src/version.c b/src/version.c index 91da9bb9d8..f3e023f972 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1164, +/**/ 1163, /**/ 1162, |