]> granicus.if.org Git - vim/commitdiff
patch 8.0.0815: terminal window not correctly updated v8.0.0815
authorBram Moolenaar <Bram@vim.org>
Sun, 30 Jul 2017 15:45:37 +0000 (17:45 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 30 Jul 2017 15:45:37 +0000 (17:45 +0200)
Problem:    Terminal window not correctly updated when 'statusline' invokes
            ":sleep". (NIkolay Pavlov)
Solution:   Clear got_int.  Repeat redrawing when needed.

src/terminal.c
src/version.c

index b0ba8c1902c44cfa40317886db71076b17dd0763..303566576e1c8490401c939ee28bf22ada191824 100644 (file)
@@ -54,6 +54,7 @@
  * - To set BS correctly, check get_stty(); Pass the fd of the pty.
  * - do not store terminal window in viminfo.  Or prefix term:// ?
  * - add a character in :ls output
+ * - add 't' to mode()
  * - when closing window and job has not ended, make terminal hidden?
  * - when closing window and job has ended, make buffer hidden?
  * - don't allow exiting Vim when a terminal is still running a job
@@ -780,6 +781,7 @@ term_vgetc()
     ++allow_keys;
     got_int = FALSE;
     c = vgetc();
+    got_int = FALSE;
     --no_mapping;
     --allow_keys;
     return c;
@@ -889,7 +891,9 @@ terminal_loop(void)
     for (;;)
     {
        /* TODO: skip screen update when handling a sequence of keys. */
-       update_screen(0);
+       /* Repeat redrawing in case a message is received while redrawing. */
+       while (curwin->w_redr_type != 0)
+           update_screen(0);
        update_cursor(curbuf->b_term, FALSE);
 
        c = term_vgetc();
index 54ee61fe9c5ed88e048291c5b55907ec8641219f..33e7e3d77b7cb9285328535ad599441c8e57634f 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    815,
 /**/
     814,
 /**/