mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:37:12 +00:00
Sync OpenBSD patchset 485:
Add an activity time for clients, like for sessions, and change session and client lookup to pick the most recently used rather than the most recently created - this is much more useful when used interactively and (because the activity time is set at creation) should have no effect on source-file. Based on a problem reported by Jan Johansson.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* $Id: server-client.c,v 1.11 2009-11-04 22:42:31 tcunha Exp $ */
|
||||
/* $Id: server-client.c,v 1.12 2009-11-04 22:46:25 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -62,6 +62,7 @@ server_client_create(int fd)
|
||||
|
||||
if (gettimeofday(&c->creation_time, NULL) != 0)
|
||||
fatal("gettimeofday failed");
|
||||
memcpy(&c->activity_time, &c->creation_time, sizeof c->activity_time);
|
||||
|
||||
ARRAY_INIT(&c->prompt_hdata);
|
||||
|
||||
@ -286,6 +287,7 @@ server_client_handle_data(struct client *c)
|
||||
oo = &c->session->options;
|
||||
|
||||
/* Update activity timer. */
|
||||
memcpy(&c->activity_time, &tv_now, sizeof c->activity_time);
|
||||
memcpy(&c->session->activity_time,
|
||||
&tv_now, sizeof c->session->activity_time);
|
||||
|
||||
@ -582,9 +584,13 @@ server_client_msg_dispatch(struct client *c)
|
||||
break;
|
||||
c->flags &= ~CLIENT_SUSPENDED;
|
||||
|
||||
if (c->session != NULL &&
|
||||
gettimeofday(&c->session->activity_time, NULL) != 0)
|
||||
fatal("gettimeofday failed");
|
||||
if (gettimeofday(&c->activity_time, NULL) != 0)
|
||||
fatal("gettimeofday");
|
||||
if (c->session != NULL) {
|
||||
memcpy(&c->session->activity_time,
|
||||
&c->activity_time,
|
||||
sizeof c->session->activity_time);
|
||||
}
|
||||
|
||||
tty_start_tty(&c->tty);
|
||||
server_redraw_client(c);
|
||||
|
Reference in New Issue
Block a user