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

commitdf8c4660d9545297be0d2b14a8fb7aa28ad5af2b
parenta70454b305
authorLucas Galante <[email protected]>
date2026-09-20 19:32
The network plate is the pane material verbatim, not scaled by the fade

PassivePlate multiplied the plate alpha by the graph opacity, which at the
configured 0.1 left a 1% plate under grid cells painted in their own
colour. With cce-ui's grid now leaving cells to the plate, the plate has to
BE the pane material or the network pane is a different colour from every
other pane. The fade still applies to what is drawn over it.

Co-Authored-By: Claude Fable 5.1 <[email protected]>

 src/app.rs   |  6 ------
 src/slots.rs | 20 +++++++-------------
 2 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/src/app.rs b/src/app.rs
index cc1656f..e4473a6 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -4402,9 +4402,6 @@ pub(crate) fn geometry_to_spreadsheet_data(geom: &Detail) -> (Vec<String>, Vec<V
         if let Some(breadcrumb) = self.slots.breadcrumb.as_any_mut().downcast_mut::<cce_ui::widget::Breadcrumb>() {
             breadcrumb.set_network_opacity(self.network_opacity);
         }
-        if let Some(plate) = self.slots.network_panel.as_any_mut().downcast_mut::<PassivePlate>() {
-            plate.set_network_opacity(self.network_opacity);
-        }
 
         // The second editor's graph reads the SAME display settings but its
         // OWN rect as origin (no pan of its own yet — the rect is the view).
@@ -4428,9 +4425,6 @@ pub(crate) fn geometry_to_spreadsheet_data(geom: &Detail) -> (Vec<String>, Vec<V
         if let Some(bc2) = self.slots.breadcrumb2.as_any_mut().downcast_mut::<cce_ui::widget::Breadcrumb>() {
             bc2.set_network_opacity(self.network_opacity);
         }
-        if let Some(plate) = self.slots.network_panel2.as_any_mut().downcast_mut::<PassivePlate>() {
-            plate.set_network_opacity(self.network_opacity);
-        }
     }
 
     pub fn update_inertial_settings(&mut self) {
diff --git a/src/slots.rs b/src/slots.rs
index eec8f86..e76777e 100644
--- a/src/slots.rs
+++ b/src/slots.rs
@@ -216,10 +216,12 @@ impl WidgetSlots {
 /// Dissolved cce-ui `Plate` (Phase 6as): a passive panel wearing the parameter
 /// plate's fill — same tint, opacity, and blur-behind marker (`param_plate_fill`),
 /// so the network plate's bevel rolls exactly like the params plate's and tracks a
-/// live retint/opacity/blur toggle — scaled by the network fade. No children, no
-/// events.
+/// live retint/opacity/blur toggle. NOT scaled by the network fade (it was until
+/// 2026-09-20): the graph's grid cells are this plate showing through, so the
+/// plate has to be the pane material verbatim or the network pane reads as a
+/// different colour from every other pane. The fade applies to what is drawn
+/// over it — grid lines, wires, text. No children, no events.
 pub struct PassivePlate {
-    pub network_opacity: f32,
     /// Circular hit shape while the network pane is round (the legacy Plate marker).
     curved_circle: Option<(f32, f32, f32)>,
 }
@@ -227,15 +229,10 @@ pub struct PassivePlate {
 impl PassivePlate {
     pub fn new() -> cce_ui::widget::Adapted<PassivePlate> {
         cce_ui::widget::Adapted::new(Self {
-            network_opacity: 1.0,
             curved_circle: None,
         })
     }
 
-    pub fn set_network_opacity(&mut self, opacity: f32) {
-        self.network_opacity = opacity;
-    }
-
     pub fn set_curved_circle(&mut self, circle: Option<(f32, f32, f32)>) {
         self.curved_circle = circle;
     }
@@ -252,11 +249,8 @@ impl cce_ui::widget::Paint for PassivePlate {
     fn paint(&self, _rect: cce_ui::scene::layout::Rect, _ctx: &mut cce_ui::scene::paint::PaintCtx) {}
 
     fn color(&self) -> [f32; 4] {
-        // `param_plate_fill` folds in the plate opacity and the blur marker; the
-        // network fade scales the (possibly negative) alpha without flipping its sign.
-        let mut c = cce_ui::colors::param_plate_fill();
-        c[3] *= self.network_opacity;
-        c
+        // `param_plate_fill` folds in the plate opacity and the blur marker.
+        cce_ui::colors::param_plate_fill()
     }
 
     fn corner_style(&self, _rect: cce_ui::scene::layout::Rect) -> Option<(f32, (bool, bool, bool, bool))> {