visible items helper

pull/36304/head
Shane Smiskol 4 days ago
parent 7baeb43094
commit e64f05b691
  1. 10
      system/ui/widgets/scroller.py

@ -39,9 +39,13 @@ class Scroller(Widget):
self._items.append(item) self._items.append(item)
item.set_touch_valid_callback(self.scroll_panel.is_touch_valid) item.set_touch_valid_callback(self.scroll_panel.is_touch_valid)
@property
def _visible_items(self) -> list[Widget]:
return [item for item in self._items if item.is_visible]
def _render(self, _): def _render(self, _):
# TODO: don't draw items that are not in the viewport # TODO: don't draw items that are not in the viewport
visible_items = [item for item in self._items if item.is_visible] visible_items = self._visible_items
# Add line separator between items # Add line separator between items
if self._line_separator is not None: if self._line_separator is not None:
@ -81,10 +85,10 @@ class Scroller(Widget):
super().show_event() super().show_event()
# Reset to top # Reset to top
self.scroll_panel.set_offset(0) self.scroll_panel.set_offset(0)
for item in self._items: for item in self._visible_items:
item.show_event() item.show_event()
def hide_event(self): def hide_event(self):
super().hide_event() super().hide_event()
for item in self._items: for item in self._visible_items:
item.hide_event() item.hide_event()

Loading…
Cancel
Save