Fix scale transform being applied when drawing shapes while zoomed in (#2286)

* Nothing works a.k.a. init commit

* Everything works a.k.a. final commit

* Minor change

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Nitish Choudhary
2025-02-12 13:06:15 -08:00
committed by GitHub
co-authored by Keavon Chambers
parent 7bbbf7fa7c
commit 95bbc95606
5 changed files with 31 additions and 31 deletions
@@ -236,11 +236,9 @@ impl Fsm for EllipseToolFsmState {
responses.add(GraphOperationMessage::TransformSet {
layer,
transform: DAffine2::from_translation((start + end) / 2.),
transform_in: TransformIn::Viewport,
transform_in: TransformIn::Local,
skip_rerender: false,
});
responses.add(NodeGraphMessage::RunDocumentGraph);
}
}
@@ -279,8 +279,7 @@ impl Fsm for PolygonToolFsmState {
(PolygonToolFsmState::Drawing, PolygonToolMessage::PointerMove { center, lock_ratio }) => {
if let Some([start, end]) = tool_data.data.calculate_points(document, input, center, lock_ratio) {
if let Some(layer) = tool_data.data.layer {
// TODO: make the scale impact the polygon/star node - we need to determine how to allow the polygon node to make irregular shapes
// TODO: We need to determine how to allow the polygon node to make irregular shapes
update_radius_sign(end, start, layer, document, responses);
let dimensions = (start - end).abs();
@@ -326,11 +325,9 @@ impl Fsm for PolygonToolFsmState {
responses.add(GraphOperationMessage::TransformSet {
layer,
transform: DAffine2::from_scale_angle_translation(scale, 0., (start + end) / 2.),
transform_in: TransformIn::Viewport,
transform_in: TransformIn::Local,
skip_rerender: false,
});
responses.add(NodeGraphMessage::RunDocumentGraph);
}
}
@@ -224,7 +224,6 @@ impl Fsm for RectangleToolFsmState {
(RectangleToolFsmState::Drawing, RectangleToolMessage::PointerMove { center, lock_ratio }) => {
if let Some([start, end]) = shape_data.calculate_points(document, input, center, lock_ratio) {
if let Some(layer) = shape_data.layer {
// TODO: make the scale impact the rect node
let Some(node_id) = graph_modification_utils::get_rectangle_id(layer, &document.network_interface) else {
return self;
};
@@ -240,11 +239,9 @@ impl Fsm for RectangleToolFsmState {
responses.add(GraphOperationMessage::TransformSet {
layer,
transform: DAffine2::from_translation((start + end) / 2.),
transform_in: TransformIn::Viewport,
transform_in: TransformIn::Local,
skip_rerender: false,
});
responses.add(NodeGraphMessage::RunDocumentGraph);
}
}
@@ -504,7 +504,9 @@ impl Fsm for TextToolFsmState {
TextToolFsmState::Placing
}
(Self::Placing | TextToolFsmState::Dragging, TextToolMessage::PointerMove { center, lock_ratio }) => {
tool_data.cached_resize_bounds = tool_data.resize.calculate_points_ignore_layer(document, input, center, lock_ratio);
let document_points = tool_data.resize.calculate_points_ignore_layer(document, input, center, lock_ratio);
let document_to_viewport = document.metadata().document_to_viewport;
tool_data.cached_resize_bounds = [document_to_viewport.transform_point2(document_points[0]), document_to_viewport.transform_point2(document_points[1])];
responses.add(OverlaysMessage::Draw);