summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/tmux/server-client.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index 0a5bd8a401a..ed22da9a333 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.331 2020/04/21 06:32:40 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.332 2020/04/21 06:34:13 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -1537,6 +1537,7 @@ focused:
static void
server_client_reset_state(struct client *c)
{
+ struct tty *tty = &c->tty;
struct window *w = c->session->curw->window;
struct window_pane *wp = w->active, *loop;
struct screen *s;
@@ -1547,6 +1548,10 @@ server_client_reset_state(struct client *c)
if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED))
return;
+ /* Disable the block flag. */
+ flags = (tty->flags & TTY_BLOCK);
+ tty->flags &= ~TTY_BLOCK;
+
/* Get mode from overlay if any, else from screen. */
if (c->overlay_draw != NULL) {
s = NULL;
@@ -1561,13 +1566,13 @@ server_client_reset_state(struct client *c)
log_debug("%s: client %s mode %x", __func__, c->name, mode);
/* Reset region and margin. */
- tty_region_off(&c->tty);
- tty_margin_off(&c->tty);
+ tty_region_off(tty);
+ tty_margin_off(tty);
/* Move cursor to pane cursor and offset. */
if (c->overlay_draw == NULL) {
cursor = 0;
- tty_window_offset(&c->tty, &ox, &oy, &sx, &sy);
+ tty_window_offset(tty, &ox, &oy, &sx, &sy);
if (wp->xoff + s->cx >= ox && wp->xoff + s->cx <= ox + sx &&
wp->yoff + s->cy >= oy && wp->yoff + s->cy <= oy + sy) {
cursor = 1;
@@ -1581,7 +1586,8 @@ server_client_reset_state(struct client *c)
if (!cursor)
mode &= ~MODE_CURSOR;
}
- tty_cursor(&c->tty, cx, cy);
+ log_debug("%s: cursor to %u,%u", __func__, cx, cy);
+ tty_cursor(tty, cx, cy);
/*
* Set mouse mode if requested. To support dragging, always use button
@@ -1604,18 +1610,12 @@ server_client_reset_state(struct client *c)
mode &= ~MODE_BRACKETPASTE;
/* Set the terminal mode and reset attributes. */
- tty_update_mode(&c->tty, mode, s);
- tty_reset(&c->tty);
+ tty_update_mode(tty, mode, s);
+ tty_reset(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;
+ /* All writing must be done, send a sync end (if it was started). */
+ tty_sync_end(tty);
+ tty->flags |= flags;
}
/* Repeat time callback. */