From f3e3ac0d6c34a8043a1b0cbfb8c8c4ae39c5df75 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 12 Jun 2025 16:48:05 -0700 Subject: [PATCH] need this since touch can change :( --- system/ui/lib/list_view.py | 2 ++ system/ui/lib/widget.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/system/ui/lib/list_view.py b/system/ui/lib/list_view.py index 1d48c86c39..e71c50c288 100644 --- a/system/ui/lib/list_view.py +++ b/system/ui/lib/list_view.py @@ -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) diff --git a/system/ui/lib/widget.py b/system/ui/lib/widget.py index 6bdf1a74f0..8ec610d82c 100644 --- a/system/ui/lib/widget.py +++ b/system/ui/lib/widget.py @@ -24,8 +24,11 @@ class Widget(abc.ABC): self._is_visible = visible def set_rect(self, rect: rl.Rectangle) -> None: + prev_rect = self._rect self._rect = rect - self._update_layout_rects() + if (rect.x != prev_rect.x or rect.y != prev_rect.y or + rect.width != prev_rect.width or rect.height != prev_rect.height): + self._update_layout_rects() def render(self, rect: rl.Rectangle = None) -> bool | int | None: if rect is not None: