From 9d8788b60c289e2a5fd86f7de2f2f0a5c9a91992 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Fri, 24 Dec 2021 10:50:06 -0600 Subject: [PATCH] Make use of deltaY when scrolling This fixes the ultra-fast scrolling that was happening in Safari. It also makes scrolling more consistent in general. --- macrovision.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/macrovision.js b/macrovision.js index efaa88a3..29769910 100644 --- a/macrovision.js +++ b/macrovision.js @@ -4186,11 +4186,13 @@ document.addEventListener("DOMContentLoaded", () => { } } document.querySelector("#world").addEventListener("wheel", e => { - - + const magnitude = Math.abs(e.deltaY / 100); if (shiftHeld) { if (selected) { - const dir = e.deltaY > 0 ? 10 / 11 : 11 / 10; + let dir = e.deltaY > 0 ? 10 / 11 : 11 / 10; + dir -= 1; + dir *= magnitude; + dir += 1; const entity = entities[selected.dataset.key]; entity.views[entity.view].height = math.multiply(entity.views[entity.view].height, dir); entity.dirty = true; @@ -4208,7 +4210,10 @@ document.addEventListener("DOMContentLoaded", () => { if (config.autoFit) { toastRateLimit("Zoom is locked! Check Settings to disable.", "zoom-lock", 1000); } else { - const dir = e.deltaY < 0 ? 10 / 11 : 11 / 10; + let dir = e.deltaY < 0 ? 10 / 11 : 11 / 10; + dir -= 1; + dir *= magnitude; + dir += 1; const change = config.height.toNumber("meters") - math.multiply(config.height, dir).toNumber("meters"); if (!config.lockYAxis) { config.y += change / 2;