Fix crop.rotateAspect turning a zero-size crop into a NaN rect

Found while testing crates/engine/src/cmd/develop.rs:676 (crop.rotateAspect); also crates/geom/src/lib.rs:180 (Rect::fit_aspect)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
NetterSilver
2026-10-15 00:31:45 +02:00
co-authored by Claude Haiku 5.5
parent 3b4279fc24
commit 072bcfeaf1
3 changed files with 19 additions and 3 deletions
+3 -2
View File
@@ -678,10 +678,11 @@ pub fn specs() -> Vec<CommandSpec> {
let (w, h) = crop_dims(s, id);
edit(s, "crop.rotateAspect", "Rotate Crop", |d| {
let r = d.crop.geometry.rect_px(w, h);
let a = r.height() / r.width();
// a degenerate crop has no aspect to rotate: fall back to the image's own
let a = Some(r.height() / r.width()).filter(|a| a.is_finite() && *a > 0.0);
d.crop.aspect = d.crop.aspect.map(|(x, y)| (y, x));
let angle = d.crop.geometry.angle;
d.crop.geometry = crop_fit_angle(w, h, angle, Some(a));
d.crop.geometry = crop_fit_angle(w, h, angle, a);
Ok(())
})
}),