From f66eeef8a5f62e6465963f1ed1e9c223abde6e24 Mon Sep 17 00:00:00 2001 From: Michael Grant Date: Mon, 24 Aug 2026 13:36:34 +0100 Subject: [PATCH] Added a fallback in server_client_check_redraw() as recommended by codex to catch an unserviced edge-case. --- server-client.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server-client.c b/server-client.c index 0638df3cc..78814a1c8 100644 --- a/server-client.c +++ b/server-client.c @@ -2559,6 +2559,18 @@ server_client_check_redraw(struct client *c) redraw_pane_scrollbar(c, wp); } } + + /* + * Window damage is also what makes server_client_any_pane_ + * redraw() decide a redraw is needed at all, independently of + * any CLIENT_ALLREDRAWFLAGS bit. Every current damage source + * happens to set one of those flags too, so the block below + * always consumes it - but fall back to consuming it here in + * case that ever stops holding, rather than silently + * dropping it when redraw_free_damage() clears it next loop. + */ + if (!TAILQ_EMPTY(&w->damage) && (~c->flags & CLIENT_ALLREDRAWFLAGS)) + redraw_client_damage(c); } /*