diff --git a/crates/develop/src/controls.rs b/crates/develop/src/controls.rs index 4d937ab21..9d384f57c 100644 --- a/crates/develop/src/controls.rs +++ b/crates/develop/src/controls.rs @@ -97,6 +97,10 @@ impl ControlSpec { } pub fn format(&self, v: f64) -> String { let s = format!("{:.*}", self.decimals as usize, v); + if v.is_finite() && !s.bytes().any(|b| matches!(b, b'1'..=b'9')) { + // Rounds to zero: no sign. + return s.trim_start_matches('-').to_string(); + } if v > 0.0 && self.min < 0.0 { format!("+{s}") } else { s } } /// Where `v` sits on the slider track, from 0 (left end) to 1 (right end). Linear, except for the Kelvin @@ -496,6 +500,17 @@ pub fn in_section(section: Section) -> impl Iterator