@ -275,6 +275,8 @@ class ListView(Widget):
self._total_height = 0
def _render(self, rect: rl.Rectangle):
self._update_layout_rects()
# Update layout and handle scrolling
content_rect = rl.Rectangle(rect.x, rect.y, rect.width, self._total_height)
scroll_offset = self.scroll_panel.handle_scroll(rect, content_rect)
@ -24,7 +24,10 @@ class Widget(abc.ABC):
self._is_visible = visible
def set_rect(self, rect: rl.Rectangle) -> None:
prev_rect = self._rect
self._rect = rect
if (rect.x != prev_rect.x or rect.y != prev_rect.y or
rect.width != prev_rect.width or rect.height != prev_rect.height):
def render(self, rect: rl.Rectangle = None) -> bool | int | None: