mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:44:18 +00:00 
			
		
		
		
	SESSION_UNATTACHED flag is no longer necessary now we have an attached
count instead.
This commit is contained in:
		@@ -136,7 +136,7 @@ cmd_find_best_client(struct session *s)
 | 
			
		||||
{
 | 
			
		||||
	struct client	*c_loop, *c;
 | 
			
		||||
 | 
			
		||||
	if (s->flags & SESSION_UNATTACHED)
 | 
			
		||||
	if (s->attached == 0)
 | 
			
		||||
		s = NULL;
 | 
			
		||||
 | 
			
		||||
	c = NULL;
 | 
			
		||||
@@ -160,10 +160,10 @@ cmd_find_session_better(struct session *s, struct session *than, int flags)
 | 
			
		||||
	if (than == NULL)
 | 
			
		||||
		return (1);
 | 
			
		||||
	if (flags & CMD_FIND_PREFER_UNATTACHED) {
 | 
			
		||||
		attached = (~than->flags & SESSION_UNATTACHED);
 | 
			
		||||
		if (attached && (s->flags & SESSION_UNATTACHED))
 | 
			
		||||
		attached = (than->attached != 0);
 | 
			
		||||
		if (attached && s->attached == 0)
 | 
			
		||||
			return (1);
 | 
			
		||||
		else if (!attached && (~s->flags & SESSION_UNATTACHED))
 | 
			
		||||
		else if (!attached && s->attached != 0)
 | 
			
		||||
			return (0);
 | 
			
		||||
	}
 | 
			
		||||
	return (timercmp(&s->activity_time, &than->activity_time, >));
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								resize.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								resize.c
									
									
									
									
									
								
							@@ -36,10 +36,6 @@
 | 
			
		||||
 *
 | 
			
		||||
 * This is quite inefficient - better/additional data structures are needed
 | 
			
		||||
 * to make it better.
 | 
			
		||||
 *
 | 
			
		||||
 * As a side effect, this function updates the SESSION_UNATTACHED flag. This
 | 
			
		||||
 * flag is necessary to make sure unattached sessions do not limit the size of
 | 
			
		||||
 * windows that are attached both to them and to other (attached) sessions.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
@@ -79,11 +75,8 @@ recalculate_sizes(void)
 | 
			
		||||
				s->attached++;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if (ssx == UINT_MAX || ssy == UINT_MAX) {
 | 
			
		||||
			s->flags |= SESSION_UNATTACHED;
 | 
			
		||||
		if (ssx == UINT_MAX || ssy == UINT_MAX)
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
		s->flags &= ~SESSION_UNATTACHED;
 | 
			
		||||
 | 
			
		||||
		if (lines != 0 && ssy == 0)
 | 
			
		||||
			ssy = lines;
 | 
			
		||||
@@ -107,7 +100,7 @@ recalculate_sizes(void)
 | 
			
		||||
 | 
			
		||||
		ssx = ssy = UINT_MAX;
 | 
			
		||||
		RB_FOREACH(s, sessions, &sessions) {
 | 
			
		||||
			if (s->flags & SESSION_UNATTACHED)
 | 
			
		||||
			if (s->attached == 0)
 | 
			
		||||
				continue;
 | 
			
		||||
			if (flag)
 | 
			
		||||
				has = s->curw->window == w;
 | 
			
		||||
 
 | 
			
		||||
@@ -1173,7 +1173,7 @@ server_client_check_focus(struct window_pane *wp)
 | 
			
		||||
	TAILQ_FOREACH(c, &clients, entry) {
 | 
			
		||||
		if (c->session == NULL || !(c->flags & CLIENT_FOCUSED))
 | 
			
		||||
			continue;
 | 
			
		||||
		if (c->session->flags & SESSION_UNATTACHED)
 | 
			
		||||
		if (c->session->attached == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		if (c->session->curw->window == wp->window)
 | 
			
		||||
 
 | 
			
		||||
@@ -430,7 +430,7 @@ server_check_unattached(void)
 | 
			
		||||
	 * set, collect them.
 | 
			
		||||
	 */
 | 
			
		||||
	RB_FOREACH(s, sessions, &sessions) {
 | 
			
		||||
		if (!(s->flags & SESSION_UNATTACHED))
 | 
			
		||||
		if (s->attached != 0)
 | 
			
		||||
			continue;
 | 
			
		||||
		if (options_get_number (s->options, "destroy-unattached"))
 | 
			
		||||
			session_destroy(s, __func__);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								server.c
									
									
									
									
									
								
							@@ -319,7 +319,7 @@ server_update_socket(void)
 | 
			
		||||
 | 
			
		||||
	n = 0;
 | 
			
		||||
	RB_FOREACH(s, sessions, &sessions) {
 | 
			
		||||
		if (!(s->flags & SESSION_UNATTACHED)) {
 | 
			
		||||
		if (s->attached != 0) {
 | 
			
		||||
			n++;
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -266,7 +266,7 @@ session_lock_timer(__unused int fd, __unused short events, void *arg)
 | 
			
		||||
{
 | 
			
		||||
	struct session	*s = arg;
 | 
			
		||||
 | 
			
		||||
	if (s->flags & SESSION_UNATTACHED)
 | 
			
		||||
	if (s->attached == 0)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	log_debug("session %s locked, activity time %lld", s->name,
 | 
			
		||||
@@ -299,7 +299,7 @@ session_update_activity(struct session *s, struct timeval *from)
 | 
			
		||||
	else
 | 
			
		||||
		evtimer_set(&s->lock_timer, session_lock_timer, s);
 | 
			
		||||
 | 
			
		||||
	if (~s->flags & SESSION_UNATTACHED) {
 | 
			
		||||
	if (s->attached != 0) {
 | 
			
		||||
		timerclear(&tv);
 | 
			
		||||
		tv.tv_sec = options_get_number(s->options, "lock-after-time");
 | 
			
		||||
		if (tv.tv_sec != 0)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							@@ -938,9 +938,8 @@ struct session {
 | 
			
		||||
	struct hooks	*hooks;
 | 
			
		||||
	struct options	*options;
 | 
			
		||||
 | 
			
		||||
#define SESSION_UNATTACHED 0x1	/* not attached to any clients */
 | 
			
		||||
#define SESSION_PASTING 0x2
 | 
			
		||||
#define SESSION_ALERTED 0x4
 | 
			
		||||
#define SESSION_PASTING 0x1
 | 
			
		||||
#define SESSION_ALERTED 0x2
 | 
			
		||||
	int		 flags;
 | 
			
		||||
 | 
			
		||||
	u_int		 attached;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user