aboutsummaryrefslogtreecommitdiff
path: root/screen-write.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-08-17 10:01:19 +0100
committerThomas Adam <thomas@xteddy.org>2021-08-17 10:01:19 +0100
commit0dad8dd98259ce686b98e482080d916edbc294e4 (patch)
treeeb7453c7611567b2abf40e9832a08f0c9c8c95ef /screen-write.c
parentf2d4a1f02275e5b4f273a3228e0e9c099851dadd (diff)
parent41ababdf6c0529d4336a1daf3418ad314c373614 (diff)
downloadrtmux-0dad8dd98259ce686b98e482080d916edbc294e4.tar.gz
rtmux-0dad8dd98259ce686b98e482080d916edbc294e4.tar.bz2
rtmux-0dad8dd98259ce686b98e482080d916edbc294e4.zip
Merge branch 'obsd-master' into master
Diffstat (limited to 'screen-write.c')
-rw-r--r--screen-write.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/screen-write.c b/screen-write.c
index 01f8a097..c09d09ab 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -197,9 +197,20 @@ screen_write_initctx(struct screen_write_ctx *ctx, struct tty_ctx *ttyctx,
}
}
- if (ctx->wp != NULL &&
- (~ctx->flags & SCREEN_WRITE_SYNC) &&
- (sync || ctx->wp != ctx->wp->window->active)) {
+ if (~ctx->flags & SCREEN_WRITE_SYNC) {
+ /*
+ * For the active pane or for an overlay (no pane), we want to
+ * only use synchronized updates if requested (commands that
+ * move the cursor); for other panes, always use it, since the
+ * cursor will have to move.
+ */
+ if (ctx->wp != NULL) {
+ if (ctx->wp != ctx->wp->window->active)
+ ttyctx->num = 1;
+ else
+ ttyctx->num = sync;
+ } else
+ ttyctx->num = 0x10|sync;
tty_write(tty_cmd_syncstart, ttyctx);
ctx->flags |= SCREEN_WRITE_SYNC;
}