0
0
mirror of https://github.com/vim/vim.git synced 2025-09-30 04:44:14 -04:00

patch 8.0.0611: the screen is not redrawn after sending t_u7

Problem:    When t_u7 is sent a few characters in the second screen line are
            overwritten and not redrawn later. (Rastislav Barlik)
Solution:   Move redrawing the screen to after overwriting the characters.
This commit is contained in:
Bram Moolenaar
2017-06-04 15:45:50 +02:00
parent 4b974d5443
commit 976787d1f3
3 changed files with 11 additions and 3 deletions

View File

@@ -783,6 +783,11 @@ vim_main2(void)
if (params.n_commands > 0)
exe_commands(&params);
#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
/* Must be done before redrawing, puts a few characters on the screen. */
may_req_ambiguous_char_width();
#endif
RedrawingDisabled = 0;
redraw_all_later(NOT_VALID);
no_wait_return = FALSE;
@@ -796,9 +801,6 @@ vim_main2(void)
* argument doesn't make it appear in the shell Vim was started from. */
may_req_termresponse();
# if defined(FEAT_MBYTE)
may_req_ambiguous_char_width();
# endif
may_req_bg_color();
#endif

View File

@@ -3333,9 +3333,13 @@ may_req_ambiguous_char_width(void)
out_str(T_U7);
u7_status = U7_SENT;
out_flush();
/* This overwrites a few characters on the screen, a redraw is needed
* after this. Clear them out for now. */
term_windgoto(1, 0);
out_str((char_u *)" ");
term_windgoto(0, 0);
/* check for the characters now, otherwise they might be eaten by
* get_keystroke() */
out_flush();

View File

@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
611,
/**/
610,
/**/