From 481b0db955acdc724833377c14cfcbcc53caca7e Mon Sep 17 00:00:00 2001 From: 0HyperCube <78500760+0HyperCube@users.noreply.github.com> Date: Mon, 27 Dec 2021 11:30:42 +0000 Subject: [PATCH] Fix Ctrl+scroll wheel zoom point relative to the mouse position (#429) * Fix zoom * Cleanup maths --- editor/src/document/movement_handler.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editor/src/document/movement_handler.rs b/editor/src/document/movement_handler.rs index c45ad165..5a2b0ec0 100644 --- a/editor/src/document/movement_handler.rs +++ b/editor/src/document/movement_handler.rs @@ -158,10 +158,10 @@ impl MessageHandler 0 { zoom_factor = 1. / zoom_factor }; - let new_viewport_bounds = viewport_bounds * (1. / zoom_factor); + let new_viewport_bounds = viewport_bounds / zoom_factor; let delta_size = viewport_bounds - new_viewport_bounds; - let mouse_percent = mouse / viewport_bounds; - let delta = (delta_size * -2.) * (mouse_percent - DVec2::splat(0.5)); + let mouse_fraction = mouse / viewport_bounds; + let delta = delta_size * (DVec2::splat(0.5) - mouse_fraction); let transformed_delta = document.root.transform.inverse().transform_vector2(delta); let new = (layerdata.scale * zoom_factor).clamp(VIEWPORT_ZOOM_SCALE_MIN, VIEWPORT_ZOOM_SCALE_MAX);