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.render_decoration(theme);
|
||||
|
||||
const client_box = self.to_client_box(self.deco_box);
|
||||
|
||||
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)) {
|
||||
more = true;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
self.after_render(self.ctx, theme);
|
||||
return more;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue