mirror of
https://github.com/tmux/tmux.git
synced 2025-09-03 14:27:09 +00:00
Change how sync works to always send the end sequence after all output
is done when we are returning to the event loop (since we always move the cursor at that point). Also a man fix from jmc.
This commit is contained in:
26
tty.c
26
tty.c
@ -1427,18 +1427,30 @@ tty_draw_line(struct tty *tty, struct window_pane *wp, struct screen *s,
|
||||
void
|
||||
tty_sync_start(struct tty *tty)
|
||||
{
|
||||
if ((~tty->flags & TTY_SYNCING) && tty_term_has(tty->term, TTYC_SYNC)) {
|
||||
if (tty->flags & TTY_BLOCK)
|
||||
return;
|
||||
if (tty->flags & TTY_SYNCING)
|
||||
return;
|
||||
tty->flags |= TTY_SYNCING;
|
||||
|
||||
if (tty_term_has(tty->term, TTYC_SYNC)) {
|
||||
log_debug("%s sync start", tty->client->name);
|
||||
tty_putcode1(tty, TTYC_SYNC, 1);
|
||||
tty->flags |= TTY_SYNCING;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tty_sync_end(struct tty *tty)
|
||||
{
|
||||
if ((tty->flags & TTY_SYNCING) && tty_term_has(tty->term, TTYC_SYNC)) {
|
||||
if (tty->flags & TTY_BLOCK)
|
||||
return;
|
||||
if (~tty->flags & TTY_SYNCING)
|
||||
return;
|
||||
tty->flags &= ~TTY_SYNCING;
|
||||
|
||||
if (tty_term_has(tty->term, TTYC_SYNC)) {
|
||||
log_debug("%s sync end", tty->client->name);
|
||||
tty_putcode1(tty, TTYC_SYNC, 2);
|
||||
tty->flags &= ~TTY_SYNCING;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1952,12 +1964,6 @@ tty_cmd_syncstart(struct tty *tty, __unused const struct tty_ctx *ctx)
|
||||
tty_sync_start(tty);
|
||||
}
|
||||
|
||||
void
|
||||
tty_cmd_syncend(struct tty *tty, __unused const struct tty_ctx *ctx)
|
||||
{
|
||||
tty_sync_end(tty);
|
||||
}
|
||||
|
||||
static void
|
||||
tty_cell(struct tty *tty, const struct grid_cell *gc, struct window_pane *wp)
|
||||
{
|
||||
|
Reference in New Issue
Block a user