Skip to content

Commit be6012c

Browse files
committed
Stabilize scrolling with factor from input event
1 parent 32fb83a commit be6012c

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

ui/components/SmoothScrollContainer.gd

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,22 @@ func _gui_input(event: InputEvent) -> void:
103103
accept_event()
104104
elif can_mouse_scroll:
105105
if event.is_action("scroll_up") and event.pressed:
106-
scroll_up()
106+
scroll_up(event.factor)
107107
accept_event()
108108
elif event.is_action("scroll_down") and event.pressed:
109-
scroll_down()
109+
scroll_down(event.factor)
110110
accept_event()
111111

112112

113-
func scroll_up() -> void:
114-
_set_target_position(_target_position + Vector2.UP * MOUSE_SCROLL_STEP * _scroll_sensitivity)
113+
func scroll_up(factor: float) -> void:
114+
var delta := factor * MOUSE_SCROLL_STEP * _scroll_sensitivity
115+
_set_target_position(_target_position + delta * Vector2.UP)
115116
_last_accepted_scroll_event_time = Time.get_ticks_msec()
116117

117118

118-
func scroll_down() -> void:
119-
_set_target_position(_target_position + Vector2.DOWN * MOUSE_SCROLL_STEP * _scroll_sensitivity)
119+
func scroll_down(factor: float) -> void:
120+
var delta := factor * MOUSE_SCROLL_STEP * _scroll_sensitivity
121+
_set_target_position(_target_position + delta * Vector2.DOWN)
120122
_last_accepted_scroll_event_time = Time.get_ticks_msec()
121123

122124

0 commit comments

Comments
 (0)