summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2011-03-03 15:04:08 +0100
committerBram Moolenaar <bram@vim.org>2011-03-03 15:04:08 +0100
commite4688ccd61baf0250ca82dafef77881b388dae21 (patch)
treec599ee95e4d845f2c4e06877dc82e94cd39ef47e
parent6a52e075de0a9187f55d20a9d1f90ed2c687bf7a (diff)
downloadvim-e4688ccd61baf0250ca82dafef77881b388dae21.tar.gz
updated for version 7.3.137v7.3.137v7-3-137
Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan Krasilnikov) Solution: Call update_screen() before waiting for input.
-rw-r--r--src/getchar.c6
-rw-r--r--src/misc1.c8
-rw-r--r--src/version.c2
3 files changed, 14 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 63b93a54..8edf0a37 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -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 */
diff --git a/src/misc1.c b/src/misc1.c
index 9f3eff15..c39bb984 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -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 */
diff --git a/src/version.c b/src/version.c
index 1200558d..e7902972 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 137,
+/**/
136,
/**/
135,