=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.319 retrieving revision 1.320 diff -u -r1.319 -r1.320 --- src/usr.bin/tmux/server-client.c 2020/04/16 14:25:35 1.319 +++ src/usr.bin/tmux/server-client.c 2020/04/17 22:16:28 1.320 @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.319 2020/04/16 14:25:35 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.320 2020/04/17 22:16:28 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -1681,7 +1681,7 @@ struct session *s = c->session; struct tty *tty = &c->tty; struct window_pane *wp; - int needed, flags; + int needed, flags, mode = tty->mode; struct timeval tv = { .tv_usec = 1000 }; static struct event ev; size_t left; @@ -1732,6 +1732,7 @@ flags = tty->flags & (TTY_BLOCK|TTY_FREEZE|TTY_NOCURSOR); tty->flags = (tty->flags & ~(TTY_BLOCK|TTY_FREEZE)) | TTY_NOCURSOR; + tty_update_mode(tty, mode, NULL); if (~c->flags & CLIENT_REDRAWWINDOW) { /* @@ -1752,8 +1753,9 @@ screen_redraw_screen(c); } - tty->flags = (tty->flags & ~(TTY_FREEZE|TTY_NOCURSOR)) | flags; - tty_update_mode(tty, tty->mode, NULL); + tty->flags = (tty->flags & ~TTY_NOCURSOR) | (flags & TTY_NOCURSOR); + tty_update_mode(tty, mode, NULL); + tty->flags = (tty->flags & ~(TTY_BLOCK|TTY_FREEZE|TTY_NOCURSOR)) | flags; c->flags &= ~(CLIENT_ALLREDRAWFLAGS|CLIENT_STATUSFORCE);