Skip to content

Commit 43c007f

Browse files
committed
patch 8.0.0815: terminal window not correctly updated
Problem: Terminal window not correctly updated when 'statusline' invokes ":sleep". (NIkolay Pavlov) Solution: Clear got_int. Repeat redrawing when needed.
1 parent 0e7885e commit 43c007f

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

src/terminal.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
* - To set BS correctly, check get_stty(); Pass the fd of the pty.
5555
* - do not store terminal window in viminfo. Or prefix term:// ?
5656
* - add a character in :ls output
57+
* - add 't' to mode()
5758
* - when closing window and job has not ended, make terminal hidden?
5859
* - when closing window and job has ended, make buffer hidden?
5960
* - don't allow exiting Vim when a terminal is still running a job
@@ -780,6 +781,7 @@ term_vgetc()
780781
++allow_keys;
781782
got_int = FALSE;
782783
c = vgetc();
784+
got_int = FALSE;
783785
--no_mapping;
784786
--allow_keys;
785787
return c;
@@ -889,7 +891,9 @@ terminal_loop(void)
889891
for (;;)
890892
{
891893
/* TODO: skip screen update when handling a sequence of keys. */
892-
update_screen(0);
894+
/* Repeat redrawing in case a message is received while redrawing. */
895+
while (curwin->w_redr_type != 0)
896+
update_screen(0);
893897
update_cursor(curbuf->b_term, FALSE);
894898

895899
c = term_vgetc();

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ static char *(features[]) =
769769

770770
static int included_patches[] =
771771
{ /* Add new patch number below this line */
772+
/**/
773+
815,
772774
/**/
773775
814,
774776
/**/

0 commit comments

Comments
 (0)