mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-26 13:58:11 +08:00
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:
co-authored by
Keavon Chambers
parent
7bbbf7fa7c
commit
95bbc95606
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user