GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git
fix: a separator row draws no label
The pane's fallback for an unknown row type drew 'name: value', which for
a separator's empty key and value was a stray ':' under the rule.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
src/widget/container/parameters_bg.rs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/widget/container/parameters_bg.rs b/src/widget/container/parameters_bg.rs
index 16f06d3..dfeca01 100644
--- a/src/widget/container/parameters_bg.rs
+++ b/src/widget/container/parameters_bg.rs
@@ -1272,6 +1272,8 @@ impl ParametersBg {
if let Some(c) = &self.colors[i] {
labels.extend(c.own_text_labels());
}
+ } else if ptype == SEPARATOR {
+ // A rule says nothing.
} else if ptype == "ramp" {
// The name label only — the ramp's own control labels ride its
// scene-path paint (paint_scene_rows).
@@ -3998,6 +4000,8 @@ mod tests {
let rule = p.plain_quads().into_iter().find(|q| q.3 == 1.0 && (q.1 - rects[1].1).abs() < 1e-3);
assert!(rule.is_some_and(|q| q.2 > 300.0), "a rule across the row");
assert_eq!(p.hoverable_row_at(rects[1].0 + 50.0, rects[1].1 + 0.5), None, "nothing to hover");
+ let near = |l: &TextLabel| (l.y - rects[1].1).abs() < 6.0;
+ assert!(!p.own_text_labels().iter().any(near), "and no label: a fallback `name: value` once drew ':'");
}
/// A `soft` slider or float row builds its sliders with a soft range,