summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2020-04-20 06:07:40 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2020-04-20 06:07:40 +0000
commit9404cf6fa4ef278ba0db2a0e4159ba45201ecef8 (patch)
tree9dd30d30b0f5630d3656dba4bd2c98704bab0adb /usr.bin
parent209510be56c96c5165299e103cbe38777ab89b2c (diff)
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 'usr.bin')
-rw-r--r--usr.bin/tmux/server-client.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index af2ef1a6780..38a3480f808 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.326 2020/04/18 21:35:32 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.327 2020/04/20 06:07:39 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -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;