Skip to content

Commit

Permalink
Fix crash when Pen tool's in-progress point snaps along an angle with…
Browse files Browse the repository at this point in the history
… its previous anchor (#1701)

changes
  • Loading branch information
Sahilgill24 committed Apr 19, 2024
1 parent 1ccd8ae commit 5f4960d
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions editor/src/messages/tool/tool_messages/pen_tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -492,10 +492,13 @@ impl PenToolData {

if let Some(relative) = relative.map(|layer| transform.transform_point2(layer)).filter(|_| snap_angle || lock_angle) {
let resolution = LINE_ROTATE_SNAP_ANGLE.to_radians();

let angle = if lock_angle {
self.angle
} else {
} else if (relative - document_pos) != DVec2::ZERO && !lock_angle {
(-(relative - document_pos).angle_between(DVec2::X) / resolution).round() * resolution
} else {
self.angle
};
document_pos = relative - (relative - document_pos).project_onto(DVec2::new(angle.cos(), angle.sin()));

Expand Down Expand Up @@ -535,7 +538,11 @@ impl PenToolData {
}

if let Some(relative) = relative.map(|layer| transform.transform_point2(layer)) {
self.angle = -(relative - document_pos).angle_between(DVec2::X)
if (relative - document_pos) != DVec2::ZERO {
self.angle = -(relative - document_pos).angle_between(DVec2::X)
} else {
self.angle = 0.0;
}
}

transform.inverse().transform_point2(document_pos)
Expand Down

0 comments on commit 5f4960d

Please sign in to comment.