Skip to content

Commit cefe4f9

Browse files
committed
patch 7.4.1817
Problem: The screen is not updated if a callback is invoked when closing a channel. Solution: Invoke redraw_after_callback().
1 parent d8585ed commit cefe4f9

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

src/channel.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2494,6 +2494,7 @@ channel_close(channel_T *channel, int invoke_close_cb)
24942494
&rettv, 1, argv, 0L, 0L, &dummy, TRUE,
24952495
channel->ch_close_partial, NULL);
24962496
clear_tv(&rettv);
2497+
channel_need_redraw = TRUE;
24972498
}
24982499
--channel->ch_refcount;
24992500

@@ -2503,6 +2504,12 @@ channel_close(channel_T *channel, int invoke_close_cb)
25032504
partial_unref(channel->ch_close_partial);
25042505
channel->ch_close_partial = NULL;
25052506

2507+
if (channel_need_redraw)
2508+
{
2509+
channel_need_redraw = FALSE;
2510+
redraw_after_callback();
2511+
}
2512+
25062513
/* any remaining messages are useless now */
25072514
for (part = PART_SOCK; part <= PART_ERR; ++part)
25082515
drop_messages(channel, part);

src/version.c

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

754754
static int included_patches[] =
755755
{ /* Add new patch number below this line */
756+
/**/
757+
1817,
756758
/**/
757759
1816,
758760
/**/

0 commit comments

Comments
 (0)