aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
authornicm <nicm>2020-04-20 06:07:39 +0000
committernicm <nicm>2020-04-20 06:07:39 +0000
commit4bc0a83d51624911195fb4b033f51aa7bca43e54 (patch)
treed783c1a1c89e0385bf3e41a7f520cab8c1d3b808 /server-client.c
parent62ff5e4b010a9db695c79593d20ac92b0aed9558 (diff)
downloadrtmux-4bc0a83d51624911195fb4b033f51aa7bca43e54.tar.gz
rtmux-4bc0a83d51624911195fb4b033f51aa7bca43e54.tar.bz2
rtmux-4bc0a83d51624911195fb4b033f51aa7bca43e54.zip
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).
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/server-client.c b/server-client.c
index 6eda2b45..18f44ff9 100644
--- a/server-client.c
+++ b/server-client.c
@@ -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;