Need to check for pane redrawing even if just the window flag is set

(the pane flag may not have been previously set to avoid looping the
windows).
This commit is contained in:
nicm 2020-04-20 06:07:39 +00:00
parent 62ff5e4b01
commit 4bc0a83d51

View File

@ -1726,11 +1726,15 @@ server_client_check_redraw(struct client *c)
log_debug("redraw timer started");
evtimer_add(&ev, &tv);
}
if (new_flags & CLIENT_REDRAWPANES) {
if (~c->flags & CLIENT_REDRAWWINDOW) {
c->redraw_panes = 0;
TAILQ_FOREACH(wp, &w->panes, entry) {
if (wp->flags & PANE_REDRAW)
if (wp->flags & PANE_REDRAW) {
log_debug("%s: pane %%%u needs redraw",
c->name, wp->id);
c->redraw_panes |= (1 << bit);
}
if (++bit == 64) {
/*
* If more that 64 panes, give up and
@ -1741,6 +1745,8 @@ server_client_check_redraw(struct client *c)
break;
}
}
if (c->redraw_panes != 0)
c->flags |= CLIENT_REDRAWPANES;
}
c->flags |= new_flags;
return;