mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Sync OpenBSD patchset 1003:
Only hide flags on the current window when the session is attached, from Roland Walker.
This commit is contained in:
		@@ -76,6 +76,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
		ctx->curclient->session = s;
 | 
							ctx->curclient->session = s;
 | 
				
			||||||
		session_update_activity(s);
 | 
							session_update_activity(s);
 | 
				
			||||||
		server_redraw_client(ctx->curclient);
 | 
							server_redraw_client(ctx->curclient);
 | 
				
			||||||
 | 
							s->curw->flags &= ~WINLINK_ALERTFLAGS;
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if (!(ctx->cmdclient->flags & CLIENT_TERMINAL)) {
 | 
							if (!(ctx->cmdclient->flags & CLIENT_TERMINAL)) {
 | 
				
			||||||
			ctx->error(ctx, "not a terminal");
 | 
								ctx->error(ctx, "not a terminal");
 | 
				
			||||||
@@ -104,6 +105,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
		environ_update(update, &ctx->cmdclient->environ, &s->environ);
 | 
							environ_update(update, &ctx->cmdclient->environ, &s->environ);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		server_redraw_client(ctx->cmdclient);
 | 
							server_redraw_client(ctx->cmdclient);
 | 
				
			||||||
 | 
							s->curw->flags &= ~WINLINK_ALERTFLAGS;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	recalculate_sizes();
 | 
						recalculate_sizes();
 | 
				
			||||||
	server_update_socket();
 | 
						server_update_socket();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -108,6 +108,7 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
	recalculate_sizes();
 | 
						recalculate_sizes();
 | 
				
			||||||
	server_check_unattached();
 | 
						server_check_unattached();
 | 
				
			||||||
	server_redraw_client(c);
 | 
						server_redraw_client(c);
 | 
				
			||||||
 | 
						s->curw->flags &= ~WINLINK_ALERTFLAGS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return (0);
 | 
						return (0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,10 +56,12 @@ server_window_loop(void)
 | 
				
			|||||||
				server_status_session(s);
 | 
									server_status_session(s);
 | 
				
			||||||
			TAILQ_FOREACH(wp, &w->panes, entry)
 | 
								TAILQ_FOREACH(wp, &w->panes, entry)
 | 
				
			||||||
				server_window_check_content(s, wl, wp);
 | 
									server_window_check_content(s, wl, wp);
 | 
				
			||||||
		}
 | 
					
 | 
				
			||||||
 | 
								if (!(s->flags & SESSION_UNATTACHED))
 | 
				
			||||||
				w->flags &= ~(WINDOW_BELL|WINDOW_ACTIVITY);
 | 
									w->flags &= ~(WINDOW_BELL|WINDOW_ACTIVITY);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Check for bell in window. */
 | 
					/* Check for bell in window. */
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
@@ -72,7 +74,7 @@ server_window_check_bell(struct session *s, struct winlink *wl)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (!(w->flags & WINDOW_BELL) || wl->flags & WINLINK_BELL)
 | 
						if (!(w->flags & WINDOW_BELL) || wl->flags & WINLINK_BELL)
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	if (s->curw != wl)
 | 
						if (s->curw != wl || s->flags & SESSION_UNATTACHED)
 | 
				
			||||||
		wl->flags |= WINLINK_BELL;
 | 
							wl->flags |= WINLINK_BELL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	action = options_get_number(&s->options, "bell-action");
 | 
						action = options_get_number(&s->options, "bell-action");
 | 
				
			||||||
@@ -129,7 +131,7 @@ server_window_check_activity(struct session *s, struct winlink *wl)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (!(w->flags & WINDOW_ACTIVITY) || wl->flags & WINLINK_ACTIVITY)
 | 
						if (!(w->flags & WINDOW_ACTIVITY) || wl->flags & WINLINK_ACTIVITY)
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	if (s->curw == wl)
 | 
						if (s->curw == wl && !(s->flags & SESSION_UNATTACHED))
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!options_get_number(&w->options, "monitor-activity"))
 | 
						if (!options_get_number(&w->options, "monitor-activity"))
 | 
				
			||||||
@@ -165,7 +167,7 @@ server_window_check_silence(struct session *s, struct winlink *wl)
 | 
				
			|||||||
	if (!(w->flags & WINDOW_SILENCE) || wl->flags & WINLINK_SILENCE)
 | 
						if (!(w->flags & WINDOW_SILENCE) || wl->flags & WINLINK_SILENCE)
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (s->curw == wl) {
 | 
						if (s->curw == wl && !(s->flags & SESSION_UNATTACHED)) {
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Reset the timer for this window if we've focused it.  We
 | 
							 * Reset the timer for this window if we've focused it.  We
 | 
				
			||||||
		 * don't want the timer tripping as soon as we've switched away
 | 
							 * don't want the timer tripping as soon as we've switched away
 | 
				
			||||||
@@ -217,7 +219,7 @@ server_window_check_content(
 | 
				
			|||||||
	/* Activity flag must be set for new content. */
 | 
						/* Activity flag must be set for new content. */
 | 
				
			||||||
	if (!(w->flags & WINDOW_ACTIVITY) || wl->flags & WINLINK_CONTENT)
 | 
						if (!(w->flags & WINDOW_ACTIVITY) || wl->flags & WINLINK_CONTENT)
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	if (s->curw == wl)
 | 
						if (s->curw == wl && !(s->flags & SESSION_UNATTACHED))
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ptr = options_get_string(&w->options, "monitor-content");
 | 
						ptr = options_get_string(&w->options, "monitor-content");
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user