Skip to content

Commit 3eeac79

Browse files
0HyperCubeKeavon
andauthored
Enhance the Navigate Tool zoom behavior (#461)
* Snap zoom * Navigate zoom from centre * Ctrl to snap zoom in navigate * Use ctrl for global snap rotate * Fix the rotation input on snap rotate * Update hint to use ctrl * Fix mouse centre on drag * Click to zoom in * Clean up centre zoom * Update user input hints; tweak some variable names for clarity and standardization Co-authored-by: Keavon Chambers <[email protected]>
1 parent a2c2f7f commit 3eeac79

File tree

5 files changed

+250
-145
lines changed

5 files changed

+250
-145
lines changed

editor/src/document/document_file.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -859,9 +859,8 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
859859
);
860860
responses.push_back(ArtboardMessage::RenderArtboards.into());
861861

862-
let document_transform = &self.movement_handler;
863-
864-
let scale = 0.5 + ASYMPTOTIC_EFFECT + document_transform.scale * SCALE_EFFECT;
862+
let document_transform_scale = self.movement_handler.snapped_scale();
863+
let scale = 0.5 + ASYMPTOTIC_EFFECT + document_transform_scale * SCALE_EFFECT;
865864
let viewport_size = ipp.viewport_bounds.size();
866865
let viewport_mid = ipp.viewport_bounds.center();
867866
let [bounds1, bounds2] = self.graphene_document.visible_layers_bounding_box().unwrap_or([viewport_mid; 2]);
@@ -872,9 +871,9 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
872871
let scrollbar_multiplier = bounds_length - viewport_size;
873872
let scrollbar_size = viewport_size / bounds_length;
874873

875-
let log = document_transform.scale.log2();
874+
let log = document_transform_scale.log2();
876875
let ruler_interval = if log < 0. { 100. * 2_f64.powf(-log.ceil()) } else { 100. / 2_f64.powf(log.ceil()) };
877-
let ruler_spacing = ruler_interval * document_transform.scale;
876+
let ruler_spacing = ruler_interval * document_transform_scale;
878877

879878
let ruler_origin = self.graphene_document.root.transform.transform_point2(DVec2::ZERO);
880879

0 commit comments

Comments
 (0)