Mercurial > vim
changeset 21226:421c4ed6b949 v8.2.1164
patch 8.2.1164: text cleared by checking terminal properties not redrawn
Commit: https://github.com/vim/vim/commit/96916ac67ad9ed5d79ce87b099f9d01aa4c13745
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jul 8 23:09:28 2020 +0200
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 08 Jul 2020 23:15:03 +0200 |
parents | 46dce2da6919 |
children | 2dcfc1b4a478 |
files | src/proto/screen.pro src/screen.c src/term.c src/version.c |
diffstat | 4 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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);
--- 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
--- 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)