fix: stop rendering widget list contents that are outside of it's box
This commit is contained in:
		
							parent
							
								
									83a0adccc7
								
							
						
					
					
						commit
						ae39016f03
					
				
					 1 changed files with 8 additions and 2 deletions
				
			
		| 
						 | 
					@ -172,11 +172,17 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool {
 | 
				
			||||||
    self.on_render(self.ctx, theme);
 | 
					    self.on_render(self.ctx, theme);
 | 
				
			||||||
    self.render_decoration(theme);
 | 
					    self.render_decoration(theme);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const client_box = self.to_client_box(self.deco_box);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var more = false;
 | 
					    var more = false;
 | 
				
			||||||
    for (self.widgets.items) |*w|
 | 
					    for (self.widgets.items) |*w| {
 | 
				
			||||||
 | 
					        const widget_box = w.widget.box();
 | 
				
			||||||
 | 
					        if (client_box.y + client_box.h <= widget_box.y) break;
 | 
				
			||||||
 | 
					        if (client_box.x + client_box.w <= widget_box.x) break;
 | 
				
			||||||
        if (w.widget.render(theme)) {
 | 
					        if (w.widget.render(theme)) {
 | 
				
			||||||
            more = true;
 | 
					            more = true;
 | 
				
			||||||
        };
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    self.after_render(self.ctx, theme);
 | 
					    self.after_render(self.ctx, theme);
 | 
				
			||||||
    return more;
 | 
					    return more;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue