graphic design tool
git clone https://git.lucas.co/cce-designer.git
fix: network pane plate no longer draws square corners over its rounded ones
`PassivePlate` never overrode `Paint::paint`, so the toolkit default emitted a
plain square-cornered quad covering the whole pane rect. The designer's paint
walk draws the plate itself via `append_widget_plate` (a rounded fill + border)
and then also emits `extra_quads` — which served that default quad straight back
on top, filling the rounded corners in and leaking a pixel outside the border
along the straight edges.
The plate's geometry comes from the walk, so its `paint` is now a no-op.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
src/app.rs | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/app.rs b/src/app.rs
index 085be78..665c97b 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -685,6 +685,13 @@ impl PassivePlate {
impl cce_ui::widget::Layout for PassivePlate {}
impl cce_ui::widget::Paint for PassivePlate {
+ /// Nothing: the plate's fill AND border are drawn by `append_widget_plate` (or, in
+ /// circular mode, the circle+arc branch) in the designer's hand-ordered paint walk.
+ /// The default `paint` would emit a plain square-cornered quad of the whole rect,
+ /// which the walk then re-drew through `extra_quads` ON TOP of the rounded plate —
+ /// square corners over the rounded ones.
+ fn paint(&self, _rect: cce_ui::scene::layout::Rect, _ctx: &mut cce_ui::scene::paint::PaintCtx) {}
+
fn color(&self) -> [f32; 4] {
let mut c = self.color;
c[3] *= cce_ui::layout::plate_opacity();