From 92dd63dc1d414c65c8f785085341fb1b46c3082c Mon Sep 17 00:00:00 2001 From: cyberarm Date: Sat, 13 Feb 2021 20:03:10 -0600 Subject: [PATCH] Probably fixed scrolling for real this time, added scroll_top and scroll_top = n methods --- lib/cyberarm_engine/ui/elements/container.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/cyberarm_engine/ui/elements/container.rb b/lib/cyberarm_engine/ui/elements/container.rb index 5dcb392..197796c 100644 --- a/lib/cyberarm_engine/ui/elements/container.rb +++ b/lib/cyberarm_engine/ui/elements/container.rb @@ -205,7 +205,8 @@ module CyberarmEngine def mouse_wheel_up(sender, x, y) return unless @style.scroll - return if height < max_scroll_height + + return unless height < scroll_height if @scroll_position.y < 0 @scroll_position.y += @scroll_speed @@ -218,7 +219,8 @@ module CyberarmEngine def mouse_wheel_down(sender, x, y) return unless @style.scroll - return if height < max_scroll_height + + return unless height < scroll_height if @scroll_position.y.abs < max_scroll_height @scroll_position.y -= @scroll_speed @@ -229,6 +231,16 @@ module CyberarmEngine end end + def scroll_top + @scroll_position.y + end + + def scroll_top=(n) + n = 0 if n <= 0 + @scroll_position.y = -n + @scroll_position.y = -max_scroll_height if @scroll_position.y.abs > max_scroll_height + end + def value @children.map { |c| c.class }.join(", ") end