From 00aff868409c58380d9f55b8344296a59d0d26b5 Mon Sep 17 00:00:00 2001 From: Insality Date: Sat, 7 Nov 2020 22:16:40 +0300 Subject: [PATCH] #86 set minimal step for scroll free intertion --- druid/base/scroll.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/druid/base/scroll.lua b/druid/base/scroll.lua index 7d6b4d9..d286f0c 100644 --- a/druid/base/scroll.lua +++ b/druid/base/scroll.lua @@ -435,19 +435,23 @@ function Scroll._check_soft_zone(self) -- Right border (minimum x) if target.x < border.x then - target.x = helper.step(target.x, border.x, math.abs(target.x - border.x) * speed) + local step = math.max(math.abs(target.x - border.x) * speed, 1) + target.x = helper.step(target.x, border.x, step) end -- Left border (maximum x) if target.x > border.z then - target.x = helper.step(target.x, border.z, math.abs(target.x - border.z) * speed) + local step = math.max(math.abs(target.x - border.z) * speed, 1) + target.x = helper.step(target.x, border.z, step) end -- Top border (maximum y) if target.y < border.y then - target.y = helper.step(target.y, border.y, math.abs(target.y - border.y) * speed) + local step = math.max(math.abs(target.y - border.y) * speed, 1) + target.y = helper.step(target.y, border.y, step) end -- Bot border (minimum y) if target.y > border.w then - target.y = helper.step(target.y, border.w, math.abs(target.y - border.w) * speed) + local step = math.max(math.abs(target.y - border.w) * speed, 1) + target.y = helper.step(target.y, border.w, step) end end