From ae39016f03d5241354cc578fac2518226c9136d1 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 13 Aug 2025 01:10:31 +0200 Subject: [PATCH] fix: stop rendering widget list contents that are outside of it's box --- src/tui/WidgetList.zig | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tui/WidgetList.zig b/src/tui/WidgetList.zig index 4acfc3b..6a96f39 100644 --- a/src/tui/WidgetList.zig +++ b/src/tui/WidgetList.zig @@ -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;