diff options
author | nicm <nicm> | 2020-04-20 06:07:39 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-04-20 06:07:39 +0000 |
commit | 4bc0a83d51624911195fb4b033f51aa7bca43e54 (patch) | |
tree | d783c1a1c89e0385bf3e41a7f520cab8c1d3b808 | |
parent | 62ff5e4b010a9db695c79593d20ac92b0aed9558 (diff) | |
download | rtmux-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).
-rw-r--r-- | server-client.c | 10 |
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; |