git.lucas.co / cce-system-interface
system settings
git clone https://git.lucas.co/cce-system-interface.git

commit88c610d64242f62af35626b78ed25582ff7c6b43
parent45d96acd1a
authorLucas Galante <[email protected]>
date2026-08-01 22:59
feat: process list evenly inset in its well; header row loses its background

The list sits 12px off all four well walls (well_top-based top inset,
content_y trimmed so the bottom wall lands 12px under the list). The
column header keeps only its divider line.

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

 src/pages/processes.rs | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/pages/processes.rs b/src/pages/processes.rs
index 18b4850..11f421f 100644
--- a/src/pages/processes.rs
+++ b/src/pages/processes.rs
@@ -117,12 +117,14 @@ pub fn view(state: &mut ProcessesState, cx: f32, cy: f32, cw: f32, ch: f32, root
         if !state.loaded {
             sec.text("Loading processes...", 12.0, 0.0, 12.0, TEXT_FG);
         } else {
-            // Scrolling box configuration for process list
-            let list_box_x = rx + 12.0;
-            let list_box_y = sec.ay();
-            let list_box_w = sec.cw - 24.0;
+            // Scrolling box configuration for process list: one even inset
+            // between the list and the well's walls on all four sides.
+            let inset = 12.0;
+            let list_box_x = rx + inset;
+            let list_box_y = sec.well_top() + inset;
+            let list_box_w = sec.cw - 2.0 * inset;
             let list_box_h = 400.0;
-            
+
             // Dissolved List (Phase 6v): scroll state + frame prims are app-owned. The
             // scrollable viewport starts below the header.
             let header_h = 22.0;
@@ -130,8 +132,8 @@ pub fn view(state: &mut ProcessesState, cx: f32, cy: f32, cw: f32, ch: f32, root
             state.cpu_list.update_bounds(state.processes.len(), list_box_y + header_h, list_box_h - header_h - 6.0);
             state.cpu_list.push_prims(sec.pc);
 
-            // Header for process list columns (drawn static on top of the list background)
-            sec.pc.rect([0.12, 0.12, 0.16, 0.5], list_box_x + 1.0, list_box_y + 1.0, list_box_w - 2.0, header_h);
+            // Header row is background-less (the well shows through); only the
+            // divider separates it from the rows.
             sec.pc.rect([0.18, 0.18, 0.24, 1.0], list_box_x + 1.0, list_box_y + header_h, list_box_w - 2.0, 1.0); // Divider
 
             sec.pc.text("PID", list_box_x + 12.0, list_box_y + 5.0, 11.0, [0.53, 0.53, 0.60, 1.0]);
@@ -168,7 +170,9 @@ pub fn view(state: &mut ProcessesState, cx: f32, cy: f32, cw: f32, ch: f32, root
                 sec.pc.text("No active processes", list_box_x + 12.0, list_box_y + header_h + 16.0, 12.0, TEXT_DIM);
             }
 
-            sec.content_y += list_box_h;
+            // End the section so the well's bottom wall sits `inset` below the
+            // list (finish() places the wall at content_y + padding + 12).
+            sec.content_y = list_box_y + list_box_h + inset - (sec.padding() + 12.0);
         }
     });