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
commit6eb634ef1f40623192f331dda7b13e34fffba9e2 (patch)
tree7c6817aa32919ac2cbd3d4f525b3ecbce1361874
parentec737235c7eb15ef760eed791d39d117f0105d3c (diff)
downloadvim-6eb634ef1f40623192f331dda7b13e34fffba9e2.zip
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.
-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 63b93a547..8edf0a37e 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 9f3eff157..c39bb984f 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 1200558d2..e7902972b 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,