mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-27 19:08:12 +08:00
Fix an assortment of small bugs (#3968)
* Fix an assertion failure bug when scaling a line in the transform cage * Fix missing defaults on node gradient inputs * Fix Blend Shapes path input wire not updating to show in the UI after Layer > Blend * Fix assertion failure due to browser non-monotonic timestamp * Fix SVG renderer drawing 1px strokes as half-width when using stroke alignment * Fix incorrect appearance of the ColorInput widget when set to "none" and "disabled" * Fix lerp function in Fill enum to handle None cases correctly * Fix stroke alignment bug
This commit is contained in:
@@ -212,16 +212,15 @@ impl SelectedEdges {
|
||||
let original_from_pivot = updated - pivot; // The original vector from the point to the pivot
|
||||
let mut scale_factor = new_from_pivot / original_from_pivot;
|
||||
|
||||
// Constrain should always scale by the same factor in x and y
|
||||
// Constrain should always scale by the same factor in x and y.
|
||||
// When one axis of `original_from_pivot` is near zero (e.g. for a line's degenerate bounding box),
|
||||
// the scale factor for that axis is numerically unstable, so we copy from the more stable axis.
|
||||
if constrain {
|
||||
// When the point is on the pivot, we simply copy the other axis.
|
||||
if original_from_pivot.x.abs() < 1e-5 {
|
||||
if original_from_pivot.x.abs() < original_from_pivot.y.abs() {
|
||||
scale_factor.x = scale_factor.y;
|
||||
} else if original_from_pivot.y.abs() < 1e-5 {
|
||||
} else {
|
||||
scale_factor.y = scale_factor.x;
|
||||
}
|
||||
|
||||
debug_assert!((scale_factor.x - scale_factor.y).abs() < 1e-5);
|
||||
}
|
||||
|
||||
if !(self.left || self.right || constrain) {
|
||||
|
||||
Reference in New Issue
Block a user