0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.3.137

Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
            Krasilnikov)
Solution:   Call update_screen() before waiting for input.
This commit is contained in:
Bram Moolenaar 2011-03-03 15:04:08 +01:00
parent ec737235c7
commit 6eb634ef1f
3 changed files with 14 additions and 2 deletions

View File

@ -2710,8 +2710,10 @@ vgetorpeek(advance)
* are still available. But when those available characters
* are part of a mapping, and we are going to do a blocking
* wait here. Need to update the screen to display the
* changed text so far. */
if ((State & INSERT) && advance && must_redraw != 0)
* changed text so far. Also for when 'lazyredraw' is set and
* redrawing was postponed because there was something in the
* input buffer (e.g., termresponse). */
if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
{
update_screen(0);
setcursor(); /* put cursor back where it belongs */

View File

@ -3115,7 +3115,15 @@ get_keystroke()
continue;
if (n == KEYLEN_REMOVED) /* key code removed */
{
if (must_redraw)
{
/* Redrawing was postponed, do it now. */
update_screen(0);
setcursor(); /* put cursor back where it belongs */
}
continue;
}
if (n > 0) /* found a termcode: adjust length */
len = n;
if (len == 0) /* nothing typed yet */

View File

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