mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	improve view_output
This commit is contained in:
		
							parent
							
								
									57d0283d61
								
							
						
					
					
						commit
						08286a607f
					
				
					 1 changed files with 28 additions and 0 deletions
				
			
		
							
								
								
									
										28
									
								
								src/view.c
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								src/view.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -79,6 +79,31 @@ view_minimize(struct view *view, bool minimized)
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct wlr_output *
 | 
			
		||||
view_available_wlr_output(struct view *view)
 | 
			
		||||
{
 | 
			
		||||
	/* checks all of a view's corners */
 | 
			
		||||
	struct wlr_output *output = wlr_output_layout_output_at(
 | 
			
		||||
		view->server->output_layout, view->x, view->y + view->h);
 | 
			
		||||
	if (output) {
 | 
			
		||||
		return output;
 | 
			
		||||
	}
 | 
			
		||||
	output = wlr_output_layout_output_at(view->server->output_layout,
 | 
			
		||||
		view->x + view->w, view->y + view->h);
 | 
			
		||||
	if (output) {
 | 
			
		||||
		return output;
 | 
			
		||||
	}
 | 
			
		||||
	output = wlr_output_layout_output_at(view->server->output_layout,
 | 
			
		||||
		view->x + view->w, view->y);
 | 
			
		||||
	if (output) {
 | 
			
		||||
		return output;
 | 
			
		||||
	}
 | 
			
		||||
	output = wlr_output_layout_output_at(view->server->output_layout,
 | 
			
		||||
		view->x, view->y);
 | 
			
		||||
 | 
			
		||||
	return output;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* view_wlr_output - return the output that a view is mostly on */
 | 
			
		||||
struct wlr_output *
 | 
			
		||||
view_wlr_output(struct view *view)
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +116,9 @@ static struct output *
 | 
			
		|||
view_output(struct view *view)
 | 
			
		||||
{
 | 
			
		||||
	struct wlr_output *wlr_output = view_wlr_output(view);
 | 
			
		||||
	if (!wlr_output) {
 | 
			
		||||
		wlr_output = view_available_wlr_output(view);
 | 
			
		||||
	}
 | 
			
		||||
	return output_from_wlr_output(view->server, wlr_output);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue