git.lucas.co / cce-gallery
widget gallery and compositor test bench

commitebe2238ae509ab5b289f0221002a3429e7622903
parentd8e736783e
authorLucas Galante <[email protected]>
date2026-07-04 22:13
Shade preview and child bevels using the backplate background color directly, ensuring matching transparency

 src/main.rs | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 4288458..f2362eb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -723,16 +723,21 @@ cascades in cce."
                 let r = cce_ui::color::backplate_corner_radius();
                 let status_h = if statusbar_enabled { 24.0 } else { 0.0 };
 
+                let bg_color = if backplate_enabled {
+                    let mut col = cce_ui::color::page_low_color();
+                    col[3] = transparency_val;
+                    col
+                } else {
+                    [0.12, 0.12, 0.15, transparency_val]
+                };
+
                 // Draw background
                 if backplate_enabled {
-                    let mut bg_color = cce_ui::color::page_low_color();
-                    bg_color[3] = transparency_val;
                     let radii = CornerRadii::new(r, r, r, r);
                     push_rounded_rect_vertices_corners(
                         wx, wy, ww, wh, radii, sw, sh, bg_color, [0.0, 0.0, 0.0], None, &mut verts
                     );
                 } else {
-                    let bg_color = [0.12, 0.12, 0.15, transparency_val];
                     verts.extend(quad_vertices(wx, wy, ww, wh, sw, sh, bg_color));
                 }
 
@@ -809,10 +814,10 @@ cascades in cce."
                                  let c_offset = |factor: f32| -> [f32; 4] {
                                      let o = factor * color_offset;
                                      [
-                                         (border_color[0] + o).clamp(0.0, 1.0),
-                                         (border_color[1] + o).clamp(0.0, 1.0),
-                                         (border_color[2] + o).clamp(0.0, 1.0),
-                                         border_color[3]
+                                         (bg_color[0] + o).clamp(0.0, 1.0),
+                                         (bg_color[1] + o).clamp(0.0, 1.0),
+                                         (bg_color[2] + o).clamp(0.0, 1.0),
+                                         bg_color[3]
                                      ]
                                  };
                                  
@@ -831,7 +836,7 @@ cascades in cce."
                                 push_bevel_slice_corners(
                                     wx, wy, ww, wh,
                                     r, r_offset, slice_w,
-                                    sw, sh, border_color, color_offset,
+                                    sw, sh, bg_color, color_offset,
                                     &mut verts
                                 );
                             }
@@ -968,6 +973,7 @@ cascades in cce."
                 let backplate_enabled = self.use_backplate;
                 
                 if backplate_enabled {
+                    let bg_color = self.widgets[0].color();
                     let radii = CornerRadii::new(r, r, r, r);
                     cce_ui::backend::window_runner::push_plate_solid_border_vertices(
                         wx, wy, ww, wh, radii, t, sw, sh, border_color, [0.0, 0.0, -1.0], &mut verts
@@ -993,10 +999,10 @@ cascades in cce."
                              let c_offset = |factor: f32| -> [f32; 4] {
                                  let o = factor * color_offset;
                                  [
-                                     (border_color[0] + o).clamp(0.0, 1.0),
-                                     (border_color[1] + o).clamp(0.0, 1.0),
-                                     (border_color[2] + o).clamp(0.0, 1.0),
-                                     border_color[3]
+                                     (bg_color[0] + o).clamp(0.0, 1.0),
+                                     (bg_color[1] + o).clamp(0.0, 1.0),
+                                     (bg_color[2] + o).clamp(0.0, 1.0),
+                                     bg_color[3]
                                  ]
                              };
                              
@@ -1015,7 +1021,7 @@ cascades in cce."
                                 push_bevel_slice_corners(
                                     wx, wy, ww, wh,
                                     r, r_offset, slice_w,
-                                    sw, sh, border_color, color_offset,
+                                    sw, sh, bg_color, color_offset,
                                     &mut verts
                                 );
                         }