system settings
git clone https://git.lucas.co/cce-system-interface.git
feat: process and services lists size to fill their pages
List height derives from the page bottom (cy + ch) instead of a fixed
400/360: the well's bottom wall lands at the page bottom and the list
keeps its 12px inset inside, with a 120px floor for short windows.
Co-Authored-By: Claude Fable 5 <[email protected]>
src/pages/processes.rs | 4 +++-
src/pages/services.rs | 8 ++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/pages/processes.rs b/src/pages/processes.rs
index 9571a21..062e3ac 100644
--- a/src/pages/processes.rs
+++ b/src/pages/processes.rs
@@ -73,7 +73,9 @@ pub fn view(state: &mut ProcessesState, cx: f32, cy: f32, cw: f32, ch: f32, root
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;
+ // Fill the page: the well's bottom wall lands at the page bottom,
+ // the list keeps its even inset inside the well.
+ let list_box_h = ((cy + ch) - inset - list_box_y).max(120.0);
// Dissolved List (Phase 6v): scroll state + frame prims are app-owned. The
// scrollable viewport starts below the header.
diff --git a/src/pages/services.rs b/src/pages/services.rs
index 978c360..889db6a 100644
--- a/src/pages/services.rs
+++ b/src/pages/services.rs
@@ -120,7 +120,9 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, _root
let list_box_x = sec.left + 12.0;
let list_box_y = sec.ay();
let list_box_w = sec_w - 24.0;
- let list_box_h = 360.0;
+ // Fill the page: the well's bottom wall lands at the page bottom,
+ // the list keeps a 12px inset above it.
+ let list_box_h = ((cy + ch) - 12.0 - list_box_y).max(120.0);
// Filter services
let query = if state.search_box.editing {
@@ -247,7 +249,9 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, _root
sec.pc.text("No services match the query", list_box_x + 16.0, list_box_y + 16.0, 12.0, TEXT_DIM);
}
- sec.content_y += list_box_h;
+ // End the section so the well's bottom wall sits 12px below the
+ // list (finish() places the wall at content_y + padding + 12).
+ sec.content_y = list_box_y + list_box_h + 12.0 - (sec.padding() + 12.0);
}
});