Fix Ctrl+scroll wheel zoom point relative to the mouse position (#429)

* Fix zoom

* Cleanup maths
This commit is contained in:
0HyperCube 2021-12-27 11:30:42 +00:00 committed by Keavon Chambers
parent c9f140f458
commit 481b0db955
1 changed files with 3 additions and 3 deletions

View File

@ -158,10 +158,10 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
if ipp.mouse.scroll_delta.y > 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);