diff --git a/core/src/ui/render_state.rs b/core/src/ui/render_state.rs index 7b87280..d70d994 100644 --- a/core/src/ui/render_state.rs +++ b/core/src/ui/render_state.rs @@ -1090,7 +1090,13 @@ impl RegionRemap { if from.len() == to.len() || extent == Rel::ZERO { return scalar + to.start - from.start; } - let fraction = (scalar.rel - from.start.rel) / extent; + // A box that spans the whole of its parent's is the common one, and + // dividing by one is the expensive way to write a subtraction. + let offset = scalar.rel - from.start.rel; + let fraction = match extent == Rel::ONE { + true => offset, + false => offset / extent, + }; let from_px = fraction.lerp(from.start.px, from.end.px); let to_rel = fraction.lerp(to.start.rel, to.end.rel); let to_px = fraction.lerp(to.start.px, to.end.px);