If the client is blocked, defer the redraw because it may end up

partially discarded leading to redraw artifacts.
This commit is contained in:
nicm
2026-06-15 15:05:12 +00:00
parent 0e6fe5a097
commit bb750b07bc

View File

@@ -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)) {