=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.335 retrieving revision 1.336 diff -c -r1.335 -r1.336 *** src/usr.bin/tmux/server-client.c 2020/05/16 15:06:03 1.335 --- src/usr.bin/tmux/server-client.c 2020/05/16 15:34:08 1.336 *************** *** 1,4 **** ! /* $OpenBSD: server-client.c,v 1.335 2020/05/16 15:06:03 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: server-client.c,v 1.336 2020/05/16 15:34:08 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 1542,1550 **** struct tty *tty = &c->tty; struct window *w = c->session->curw->window; struct window_pane *wp = w->active, *loop; ! struct screen *s; struct options *oo = c->session->options; ! int mode, cursor, flags; u_int cx = 0, cy = 0, ox, oy, sx, sy; if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED)) --- 1542,1550 ---- struct tty *tty = &c->tty; struct window *w = c->session->curw->window; struct window_pane *wp = w->active, *loop; ! struct screen *s = NULL; struct options *oo = c->session->options; ! int mode = 0, cursor, flags; u_int cx = 0, cy = 0, ox, oy, sx, sy; if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED)) *************** *** 1556,1572 **** /* Get mode from overlay if any, else from screen. */ if (c->overlay_draw != NULL) { ! s = NULL; ! if (c->overlay_mode == NULL) ! mode = 0; ! else ! mode = c->overlay_mode(c, &cx, &cy); ! } else { s = wp->screen; mode = s->mode; ! if (c->prompt_string != NULL || c->message_string != NULL) ! mode &= ~MODE_CURSOR; ! } log_debug("%s: client %s mode %x", __func__, c->name, mode); /* Reset region and margin. */ --- 1556,1569 ---- /* Get mode from overlay if any, else from screen. */ if (c->overlay_draw != NULL) { ! if (c->overlay_mode != NULL) ! s = c->overlay_mode(c, &cx, &cy); ! } else s = wp->screen; + if (s != NULL) mode = s->mode; ! if (c->prompt_string != NULL || c->message_string != NULL) ! mode &= ~MODE_CURSOR; log_debug("%s: client %s mode %x", __func__, c->name, mode); /* Reset region and margin. */