git.lucas.co / cce-designer
graphic design tool
git clone https://git.lucas.co/cce-designer.git

commit6718db578416b5a878946caba11052d174fed446
parent50d0ac6d93
authorLucas Galante <[email protected]>
date2026-07-18 13:30
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();