=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tty.c,v retrieving revision 1.357 retrieving revision 1.358 diff -c -r1.357 -r1.358 *** src/usr.bin/tmux/tty.c 2020/04/18 06:20:50 1.357 --- src/usr.bin/tmux/tty.c 2020/04/18 07:32:54 1.358 *************** *** 1,4 **** ! /* $OpenBSD: tty.c,v 1.357 2020/04/18 06:20:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: tty.c,v 1.358 2020/04/18 07:32:54 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 944,949 **** --- 944,950 ---- static void tty_redraw_region(struct tty *tty, const struct tty_ctx *ctx) { + struct client *c = tty->client; struct window_pane *wp = ctx->wp; struct screen *s = wp->screen; u_int i; *************** *** 953,958 **** --- 954,960 ---- * likely to be followed by some more scrolling. */ if (tty_large_region(tty, ctx)) { + log_debug("%s: %s, large redraw of %%%u", __func__, c->name, wp->id); wp->flags |= PANE_REDRAW; return; } *************** *** 1484,1489 **** --- 1486,1499 ---- TAILQ_FOREACH(c, &clients, entry) { if (!tty_client_ready(c, wp)) continue; + if (c->flags & CLIENT_REDRAWPANES) { + /* + * Redraw is already deferred to redraw another pane - + * redraw this one also when that happens. + */ + wp->flags |= PANE_REDRAW; + break; + } ctx->bigger = tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy);