diff --git a/system/ui/widgets/scroller.py b/system/ui/widgets/scroller.py index 0543b1395..7eff8ae59 100644 --- a/system/ui/widgets/scroller.py +++ b/system/ui/widgets/scroller.py @@ -141,8 +141,12 @@ class Scroller(Widget): def add_widget(self, item: Widget) -> None: self._items.append(item) + + # preserve original touch valid callback + original_touch_valid_callback = item._touch_valid_callback item.set_touch_valid_callback(lambda: self.scroll_panel.is_touch_valid() and self.enabled and self._scrolling_to is None - and not self.moving_items) + and not self.moving_items and (original_touch_valid_callback() if + original_touch_valid_callback else True)) def set_scrolling_enabled(self, enabled: bool | Callable[[], bool]) -> None: """Set whether scrolling is enabled (does not affect widget enabled state)."""