From 8a07a5968abceb620816ba1fcb699d01b3c70eda Mon Sep 17 00:00:00 2001 From: iggy <iggy@muc.ccc.de> Date: Sun, 23 Jul 2023 21:12:17 +0200 Subject: [PATCH] py: st4m: fix wrap GestureScrollController --- python_payload/main.py | 6 +++--- python_payload/st4m/ui/interactions.py | 13 +++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/python_payload/main.py b/python_payload/main.py index c4aeba5a21..1807af4619 100644 --- a/python_payload/main.py +++ b/python_payload/main.py @@ -54,7 +54,7 @@ melodic._view_manager = vm nick._view_manager = vm captouch._view_manager = vm -menu_music = SunMenu( +menu_music = SimpleMenu( [ MenuItemBack(), MenuItemForeground("Harmonic", harmonic), @@ -66,7 +66,7 @@ menu_music = SunMenu( vm, ) -menu_apps = SunMenu( +menu_apps = SimpleMenu( [ MenuItemBack(), MenuItemForeground("captouch", captouch), @@ -76,7 +76,7 @@ menu_apps = SunMenu( ) -menu_badge = SunMenu( +menu_badge = SimpleMenu( [ MenuItemBack(), MenuItemForeground("nick", nick), diff --git a/python_payload/st4m/ui/interactions.py b/python_payload/st4m/ui/interactions.py index 864fd29d41..e9dac9ceb2 100644 --- a/python_payload/st4m/ui/interactions.py +++ b/python_payload/st4m/ui/interactions.py @@ -72,7 +72,6 @@ class ScrollController(st4m.Responder): self._current_position = 0 self._velocity = 0 return - if self.wrap: self._target_position = self._target_position % self._nitems else: @@ -248,13 +247,19 @@ class GestureScrollController(ScrollController): self._velocity = speed - self._current_position = ( - self._current_position + self._velocity * delta_ms - ) % self._nitems + self._current_position = self._current_position + self._velocity * delta_ms + + if self.wrap: + self._current_position = self._current_position % self._nitems + elif round(self._current_position) < 0: + self._current_position = 0 + elif round(self._current_position) >= self._nitems: + self._current_position = self._nitems - 1 if phase != self._petal._input.UP: return + pos = round(self._current_position) microstep = round(self._current_position) - self._current_position # print("micro:", microstep) # print("v", self._velocity) -- GitLab