diff options
author | nicm <nicm> | 2021-08-13 06:52:51 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-08-13 06:52:51 +0000 |
commit | 2bb0b9d6c5edd7c4127c971f5ccebed969f86c1c (patch) | |
tree | dc1ce41c165065e588de274dd754113bd0cb8a3f /cmd-attach-session.c | |
parent | a2b85069171413aa30c812d44bf8ee4d32a2f834 (diff) | |
download | rtmux-2bb0b9d6c5edd7c4127c971f5ccebed969f86c1c.tar.gz rtmux-2bb0b9d6c5edd7c4127c971f5ccebed969f86c1c.tar.bz2 rtmux-2bb0b9d6c5edd7c4127c971f5ccebed969f86c1c.zip |
Change focus to be driven by events rather than walking all panes at end
of event loop, this way the ordering of in and out can be enforced.
GitHub issue 2808.
Diffstat (limited to 'cmd-attach-session.c')
-rw-r--r-- | cmd-attach-session.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c index 6a7ebba7..c2074f4f 100644 --- a/cmd-attach-session.c +++ b/cmd-attach-session.c @@ -124,17 +124,9 @@ cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag, if (!Eflag) environ_update(s->options, c->environ, s->environ); - c->session = s; + server_client_set_session(c, s); if (~cmdq_get_flags(item) & CMDQ_STATE_REPEAT) server_client_set_key_table(c, NULL); - tty_update_client_offset(c); - status_timer_start(c); - notify_client("client-session-changed", c); - session_update_activity(s, NULL); - gettimeofday(&s->last_attached_time, NULL); - server_redraw_client(c); - s->curw->flags &= ~WINLINK_ALERTFLAGS; - s->curw->window->latest = c; } else { if (server_client_open(c, &cause) != 0) { cmdq_error(item, "open terminal failed: %s", cause); @@ -156,25 +148,14 @@ cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag, if (!Eflag) environ_update(s->options, c->environ, s->environ); - c->session = s; + server_client_set_session(c, s); server_client_set_key_table(c, NULL); - tty_update_client_offset(c); - status_timer_start(c); - notify_client("client-session-changed", c); - session_update_activity(s, NULL); - gettimeofday(&s->last_attached_time, NULL); - server_redraw_client(c); - s->curw->flags &= ~WINLINK_ALERTFLAGS; - s->curw->window->latest = c; if (~c->flags & CLIENT_CONTROL) proc_send(c->peer, MSG_READY, -1, NULL, 0); notify_client("client-attached", c); c->flags |= CLIENT_ATTACHED; } - recalculate_sizes(); - alerts_check_session(s); - server_update_socket(); return (CMD_RETURN_NORMAL); } |