diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-07-30 17:45:37 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-07-30 17:45:37 +0200 |
commit | 43c007ff225bf5522e07f23f41bfaced573b0e98 (patch) | |
tree | 047a90df11d24e4dda07467c94e45011d85f8293 | |
parent | 0e7885e67d7d798812e23dd8d32e75106f06cb76 (diff) | |
download | vim-git-43c007ff225bf5522e07f23f41bfaced573b0e98.tar.gz |
patch 8.0.0815: terminal window not correctly updatedv8.0.0815
Problem: Terminal window not correctly updated when 'statusline' invokes
":sleep". (NIkolay Pavlov)
Solution: Clear got_int. Repeat redrawing when needed.
-rw-r--r-- | src/terminal.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c index b0ba8c190..303566576 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -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(); diff --git a/src/version.c b/src/version.c index 54ee61fe9..33e7e3d77 100644 --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 815, +/**/ 814, /**/ 813, |