From bb750b07bc0804f822357ec3ced7a258c0119890 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 15 Jun 2026 15:05:12 +0000 Subject: [PATCH] If the client is blocked, defer the redraw because it may end up partially discarded leading to redraw artifacts. --- server-client.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server-client.c b/server-client.c index 35a505b1..a40c348b 100644 --- a/server-client.c +++ b/server-client.c @@ -2051,8 +2051,13 @@ server_client_check_redraw(struct client *c) } } } - if (needed && (left = EVBUFFER_LENGTH(tty->out)) != 0) { - log_debug("%s: redraw deferred (%zu left)", c->name, left); + left = EVBUFFER_LENGTH(tty->out); + if (needed && (left != 0 || (tty->flags & TTY_BLOCK))) { + if (left != 0) { + log_debug("%s: redraw deferred (%zu left)", c->name, + left); + } else + log_debug("%s: redraw deferred (blocked)", c->name); if (!evtimer_initialized(&ev)) evtimer_set(&ev, server_client_redraw_timer, NULL); if (!evtimer_pending(&ev, NULL)) {