mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	workspace: do not destroy if any seat is focusing
Since each seat has its own focus, do not destroy a workspace until it is no longer focused by any seat. This prevents seats from being forced to evacuate the workspace just because another seat switched focus away from it
This commit is contained in:
		
							parent
							
								
									e8204a852d
								
							
						
					
					
						commit
						63651bc5e0
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -155,9 +155,19 @@ void workspace_consider_destroy(struct sway_workspace *ws) {
 | 
			
		|||
	if (ws->tiling->length || ws->floating->length) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (ws->output && output_get_active_workspace(ws->output) == ws) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	struct sway_seat *seat;
 | 
			
		||||
	wl_list_for_each(seat, &server.input->seats, link) {
 | 
			
		||||
		struct sway_node *node = seat_get_focus_inactive(seat, &root->node);
 | 
			
		||||
		if (node == &ws->node) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	workspace_begin_destroy(ws);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue