diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-04-20 17:43:20 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-04-20 17:43:20 +0100 |
commit | 32c3fe40ebbc35285c2b0121dfb3dc5623f9fb73 (patch) | |
tree | ff0738166252ad1638a1e5351e1c86a9c08eca39 /server-client.c | |
parent | c706aadf52f746b695aed34297ad0a910d74eb1b (diff) | |
parent | 4a5182e6658907f876581fbcf4c774bf86d0d953 (diff) | |
download | rtmux-32c3fe40ebbc35285c2b0121dfb3dc5623f9fb73.tar.gz rtmux-32c3fe40ebbc35285c2b0121dfb3dc5623f9fb73.tar.bz2 rtmux-32c3fe40ebbc35285c2b0121dfb3dc5623f9fb73.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/server-client.c b/server-client.c index 36e2744c..ca0ec5bd 100644 --- a/server-client.c +++ b/server-client.c @@ -1539,7 +1539,7 @@ server_client_reset_state(struct client *c) struct window_pane *wp = w->active, *loop; struct screen *s; struct options *oo = c->session->options; - int mode, cursor; + int mode, cursor, flags; u_int cx = 0, cy = 0, ox, oy, sx, sy; if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED)) @@ -1604,6 +1604,16 @@ server_client_reset_state(struct client *c) /* Set the terminal mode and reset attributes. */ tty_update_mode(&c->tty, mode, s); tty_reset(&c->tty); + + /* + * All writing must be done, send a sync end (if it was started). It + * may have been started by redrawing so needs to go out even if the + * block flag is set. + */ + flags = (c->tty.flags & TTY_BLOCK); + c->tty.flags &= ~TTY_BLOCK; + tty_sync_end(&c->tty); + c->tty.flags |= flags; } /* Repeat time callback. */ |