mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	test: border fadeout
has some bug, so don't enable this feature
This commit is contained in:
		
							parent
							
								
									9b4d8d88b7
								
							
						
					
					
						commit
						06d47e87e8
					
				
					 1 changed files with 21 additions and 0 deletions
				
			
		
							
								
								
									
										21
									
								
								maomao.c
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								maomao.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -721,6 +721,25 @@ double find_animation_curve_at(double t) {
 | 
			
		|||
  return baked_points[up].y;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 有 bug,只是让上面那根透明了
 | 
			
		||||
void apply_opacity_to_rect_nodes(struct wlr_scene_node *node, double opacity) {
 | 
			
		||||
  if (node->type == WLR_SCENE_NODE_RECT) {
 | 
			
		||||
    struct wlr_scene_rect *rect = wlr_scene_rect_from_node(node);
 | 
			
		||||
    // Assuming the rect has a color field and we can modify it
 | 
			
		||||
    rect->color[3] = opacity; // Set the alpha channel of the color
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // If the node is a tree, recursively traverse its children
 | 
			
		||||
  if (node->type == WLR_SCENE_NODE_TREE) {
 | 
			
		||||
    struct wlr_scene_tree *scene_tree = wlr_scene_tree_from_node(node);
 | 
			
		||||
    struct wlr_scene_node *child;
 | 
			
		||||
    wl_list_for_each(child, &scene_tree->children, link) {
 | 
			
		||||
      apply_opacity_to_rect_nodes(child, opacity);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void fadeout_client_animation_next_tick(Client *c) {
 | 
			
		||||
  if (!c)
 | 
			
		||||
    return;
 | 
			
		||||
| 
						 | 
				
			
			@ -751,6 +770,8 @@ void fadeout_client_animation_next_tick(Client *c) {
 | 
			
		|||
  wlr_scene_node_for_each_buffer(&c->snapshot_scene->node,
 | 
			
		||||
                                 scene_buffer_apply_opacity, &opacity);
 | 
			
		||||
 | 
			
		||||
  // apply_opacity_to_rect_nodes(&c->snapshot_scene->node, opacity);
 | 
			
		||||
 | 
			
		||||
  if (animation_passed == 1.0) {
 | 
			
		||||
    wl_list_remove(&c->fadeout_link);
 | 
			
		||||
    wlr_scene_node_destroy(&c->snapshot_scene->node);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue