diff options
author | Thomas Adam <thomas@xteddy.org> | 2019-09-19 12:01:30 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2019-09-19 12:01:30 +0100 |
commit | 24ab1bc714b80d957b53685635a44dc0a89c032b (patch) | |
tree | 8f48efff4954cbbcc3c0cc3da5932ffeba096019 /server-client.c | |
parent | 827913102e0e707eb29cf1c6d7cf87b22786fbf6 (diff) | |
parent | 647887b794c00285047aa54ac0d44ae50c7847d7 (diff) | |
download | rtmux-24ab1bc714b80d957b53685635a44dc0a89c032b.tar.gz rtmux-24ab1bc714b80d957b53685635a44dc0a89c032b.tar.bz2 rtmux-24ab1bc714b80d957b53685635a44dc0a89c032b.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/server-client.c b/server-client.c index 62862634..b144d9b0 100644 --- a/server-client.c +++ b/server-client.c @@ -994,6 +994,24 @@ server_client_assume_paste(struct session *s) return (0); } +/* Has the latest client changed? */ +static void +server_client_update_latest(struct client *c) +{ + struct window *w; + + if (c->session == NULL) + return; + w = c->session->curw->window; + + if (w->latest == c) + return; + w->latest = c; + + if (options_get_number(w->options, "window-size") == WINDOW_SIZE_LATEST) + recalculate_size(w); +} + /* * Handle data key input from client. This owns and can modify the key event it * is given and is responsible for freeing it. @@ -1190,6 +1208,8 @@ forward_key: window_pane_key(wp, c, s, wl, key, m); out: + if (s != NULL) + server_client_update_latest(c); free(event); return (CMD_RETURN_NORMAL); } @@ -1747,6 +1767,7 @@ server_client_dispatch(struct imsg *imsg, void *arg) if (c->flags & CLIENT_CONTROL) break; + server_client_update_latest(c); server_client_clear_overlay(c); tty_resize(&c->tty); recalculate_sizes(); |