mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Add container_damage_whole
This commit is contained in:
		
							parent
							
								
									1c91d0c10f
								
							
						
					
					
						commit
						076bedb85e
					
				
					 5 changed files with 23 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -37,8 +37,8 @@ void output_damage_whole(struct sway_output *output);
 | 
			
		|||
void output_damage_whole_view(struct sway_output *output,
 | 
			
		||||
	struct sway_view *view);
 | 
			
		||||
 | 
			
		||||
void output_damage_whole_surface(struct sway_output *output,
 | 
			
		||||
	struct wlr_surface *surface, double ox, double oy);
 | 
			
		||||
void output_damage_whole_rect(struct sway_output *output, double ox, double oy,
 | 
			
		||||
	int width, int height);
 | 
			
		||||
 | 
			
		||||
struct sway_container *output_by_name(const char *name);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,8 +97,7 @@ struct sway_container *container_create(enum sway_container_type type);
 | 
			
		|||
 | 
			
		||||
const char *container_type_to_str(enum sway_container_type type);
 | 
			
		||||
 | 
			
		||||
struct sway_container *output_create(
 | 
			
		||||
		struct sway_output *sway_output);
 | 
			
		||||
struct sway_container *output_create(struct sway_output *sway_output);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create a new container container. A container container can be a a child of
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +115,8 @@ struct sway_container *output_create(struct sway_output *sway_output);
 | 
			
		|||
 * Create a new workspace container. Workspaces are children of an output
 | 
			
		||||
 * container and are ordered alphabetically by name.
 | 
			
		||||
 */
 | 
			
		||||
struct sway_container *workspace_create(struct sway_container *output, const char *name);
 | 
			
		||||
struct sway_container *workspace_create(struct sway_container *output,
 | 
			
		||||
		const char *name);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Create a new view container. A view can be a child of a workspace container
 | 
			
		||||
| 
						 | 
				
			
			@ -182,4 +182,6 @@ bool container_has_child(struct sway_container *con,
 | 
			
		|||
 | 
			
		||||
void container_create_notify(struct sway_container *container);
 | 
			
		||||
 | 
			
		||||
void container_damage_whole(struct sway_container *container);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,8 +7,9 @@ void desktop_damage_whole_surface(struct wlr_surface *surface, double lx,
 | 
			
		|||
	for (int i = 0; i < root_container.children->length; ++i) {
 | 
			
		||||
		struct sway_container *cont = root_container.children->items[i];
 | 
			
		||||
		if (cont->type == C_OUTPUT) {
 | 
			
		||||
			output_damage_whole_surface(cont->sway_output, surface,
 | 
			
		||||
				lx - cont->x, ly - cont->y);
 | 
			
		||||
			output_damage_whole_rect(cont->sway_output,
 | 
			
		||||
				lx - cont->x, ly - cont->y,
 | 
			
		||||
				surface->current->width, surface->current->height);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -341,8 +341,8 @@ void output_damage_whole_view(struct sway_output *output,
 | 
			
		|||
	output_damage_whole(output);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void output_damage_whole_surface(struct sway_output *output,
 | 
			
		||||
		struct wlr_surface *surface, double ox, double oy) {
 | 
			
		||||
void output_damage_whole_rect(struct sway_output *output,
 | 
			
		||||
		double ox, double oy, int width, int height) {
 | 
			
		||||
	// TODO
 | 
			
		||||
	output_damage_whole(output);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -512,9 +512,18 @@ static bool find_child_func(struct sway_container *con, void *data) {
 | 
			
		|||
 | 
			
		||||
bool container_has_child(struct sway_container *con,
 | 
			
		||||
		struct sway_container *child) {
 | 
			
		||||
	if (con == NULL || con->type == C_VIEW ||
 | 
			
		||||
			con->children->length == 0) {
 | 
			
		||||
	if (con == NULL || con->type == C_VIEW || con->children->length == 0) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	return container_find(con, find_child_func, child);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void container_damage_whole(struct sway_container *con) {
 | 
			
		||||
	struct sway_container *output = con;
 | 
			
		||||
	if (output->type != C_OUTPUT) {
 | 
			
		||||
		output = container_parent(output, C_OUTPUT);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	output_damage_whole_rect(output->sway_output, con->x, con->y, con->width,
 | 
			
		||||
		con->height);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue