use a deque

pull/35599/head
Shane Smiskol 2 months ago
parent 5afd68c6f3
commit f42d2bf7c8
  1. 8
      system/ui/lib/scroll_panel.py

@ -1,4 +1,5 @@
import pyray as rl
from collections import deque
from enum import IntEnum
# Scroll constants for smooth scrolling behavior
@ -31,7 +32,7 @@ class GuiScrollPanel:
self._velocity_y = 0.0 # Velocity for inertia
self._is_dragging: bool = False
self._bounce_offset: float = 0.0
self._velocity_history: list[float] = []
self._velocity_history: deque[float] = deque(maxlen=VELOCITY_HISTORY_SIZE)
self._last_drag_time: float = 0.0
self._content_rect: rl.Rectangle | None = None
self._bounds_rect: rl.Rectangle | None = None
@ -60,7 +61,7 @@ class GuiScrollPanel:
self._last_mouse_y = mouse_pos.y
self._start_mouse_y = mouse_pos.y
self._last_drag_time = current_time
self._velocity_history = []
self._velocity_history.clear()
self._velocity_y = 0.0
self._bounce_offset = 0.0
self._is_dragging = False
@ -76,9 +77,6 @@ class GuiScrollPanel:
drag_velocity = delta_y / time_since_last_drag / 60.0
self._velocity_history.append(drag_velocity)
if len(self._velocity_history) > VELOCITY_HISTORY_SIZE:
self._velocity_history.pop(0)
self._last_drag_time = current_time
# Detect actual dragging

Loading…
Cancel
Save