mirror of
https://github.com/tmux/tmux.git
synced 2024-12-15 03:28:47 +00:00
Merge branch 'obsd-master' into master
This commit is contained in:
commit
0dad8dd982
@ -197,9 +197,20 @@ screen_write_initctx(struct screen_write_ctx *ctx, struct tty_ctx *ttyctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->wp != NULL &&
|
if (~ctx->flags & SCREEN_WRITE_SYNC) {
|
||||||
(~ctx->flags & SCREEN_WRITE_SYNC) &&
|
/*
|
||||||
(sync || ctx->wp != ctx->wp->window->active)) {
|
* 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);
|
tty_write(tty_cmd_syncstart, ttyctx);
|
||||||
ctx->flags |= SCREEN_WRITE_SYNC;
|
ctx->flags |= SCREEN_WRITE_SYNC;
|
||||||
}
|
}
|
||||||
|
17
tty.c
17
tty.c
@ -2039,9 +2039,22 @@ tty_cmd_rawstring(struct tty *tty, const struct tty_ctx *ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
tty_cmd_syncstart(struct tty *tty, __unused const struct tty_ctx *ctx)
|
tty_cmd_syncstart(struct tty *tty, const struct tty_ctx *ctx)
|
||||||
{
|
{
|
||||||
tty_sync_start(tty);
|
if (ctx->num == 0x11) {
|
||||||
|
/*
|
||||||
|
* This is an overlay and a command that moves, the cursor so
|
||||||
|
* start synchronized updates.
|
||||||
|
*/
|
||||||
|
tty_sync_start(tty);
|
||||||
|
} else if (~ctx->num & 0x10) {
|
||||||
|
/*
|
||||||
|
* This is a pane. If there is an overlay, always start;
|
||||||
|
* otherwise, only if requested.
|
||||||
|
*/
|
||||||
|
if (ctx->num || tty->client->overlay_draw != NULL)
|
||||||
|
tty_sync_start(tty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user