diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-04-18 10:01:31 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-04-18 10:01:31 +0100 |
commit | e1799ed7c8f55a2f4467f45549bee3a058cdcd24 (patch) | |
tree | 5ba5eda9d11cb5746d0fe41ee212d21dc189771d /tty.c | |
parent | 349617a818ec8ed0f1cdedac64f5d9126d920f87 (diff) | |
parent | b0a37e7514f2e08a9a8315cc68add4f0a53ed2af (diff) | |
download | rtmux-e1799ed7c8f55a2f4467f45549bee3a058cdcd24.tar.gz rtmux-e1799ed7c8f55a2f4467f45549bee3a058cdcd24.tar.bz2 rtmux-e1799ed7c8f55a2f4467f45549bee3a058cdcd24.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -944,6 +944,7 @@ tty_fake_bce(const struct tty *tty, struct window_pane *wp, u_int bg) 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,6 +954,7 @@ tty_redraw_region(struct tty *tty, const struct tty_ctx *ctx) * 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,6 +1486,14 @@ tty_write(void (*cmdfn)(struct tty *, const struct tty_ctx *), 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); |