diff options
| -rw-r--r-- | xC.c | 34 | ||||
| -rw-r--r-- | xP/public/xP.js | 2 | 
2 files changed, 16 insertions, 20 deletions
@@ -4612,34 +4612,30 @@ log_formatter (struct app_context *ctx, struct buffer *buffer,  		&& buffer->type == BUFFER_SERVER)  	 || (ctx->current_buffer->type != BUFFER_GLOBAL  		&& buffer == ctx->current_buffer->server->buffer)) -		can_leak = true; +		can_leak = !ctx->isolate_buffers; -	relay_prepare_buffer_line (ctx, buffer, line, -		buffer != ctx->current_buffer && !ctx->isolate_buffers && can_leak); +	bool leak_to_active = buffer != ctx->current_buffer && can_leak; +	relay_prepare_buffer_line (ctx, buffer, line, leak_to_active);  	relay_broadcast (ctx); -	bool displayed = true; -	if (ctx->terminal_suspended > 0) -		// Another process is using the terminal -		displayed = false; -	else if (buffer == ctx->current_buffer) -		buffer_line_display (ctx, buffer, line, false); -	else if (!ctx->isolate_buffers && can_leak) -		buffer_line_display (ctx, buffer, line, true); -	else -		displayed = false; +	bool visible = (buffer == ctx->current_buffer || leak_to_active) +		&& ctx->terminal_suspended <= 0; -	// Advance the unread marker in active buffers but don't create a new one -	if (!displayed -	 || (buffer == ctx->current_buffer && buffer->new_messages_count)) +	// Advance the unread marker but don't create a new one +	if (!visible || buffer->new_messages_count)  	{  		buffer->new_messages_count++; -		if (flags & BUFFER_LINE_UNIMPORTANT) +		if ((flags & BUFFER_LINE_UNIMPORTANT) || leak_to_active)  			buffer->new_unimportant_count++; -		buffer->highlighted |= important;  	} -	if (!displayed) + +	if (visible) +		buffer_line_display (ctx, buffer, line, leak_to_active); +	else +	{ +		buffer->highlighted |= important;  		refresh_prompt (ctx); +	}  }  static void diff --git a/xP/public/xP.js b/xP/public/xP.js index 3266063..aabf75a 100644 --- a/xP/public/xP.js +++ b/xP/public/xP.js @@ -288,7 +288,7 @@ rpcEventHandlers.set(Relay.Event.BufferLine, e => {  	b.lines.push({...line})  	if (!(visible || e.leakToActive) ||  			b.newMessages || b.newUnimportantMessages) { -		if (line.isUnimportant) +		if (line.isUnimportant || e.leakToActive)  			b.newUnimportantMessages++  		else  			b.newMessages++  | 
