system settings
git clone https://git.lucas.co/cce-system-interface.git
chore: CCE_HOVER_DEBUG traces pointer moves and layout rebuilds
Timestamped move/changed and rebuild lines; interleaved with cce-ui's
CCE_PRESENT_DEBUG they exposed hover repaints running at 4-10Hz during
pointer motion (compositor frame-callback starvation) despite healthy
event flow.
Co-Authored-By: Claude Fable 5 <[email protected]>
src/input_handler.rs | 4 ++++
src/renderer.rs | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/src/input_handler.rs b/src/input_handler.rs
index 4773e4c..937d089 100644
--- a/src/input_handler.rs
+++ b/src/input_handler.rs
@@ -114,6 +114,10 @@ impl SystemInterface {
if changed {
self.needs_rebuild = true;
}
+ if std::env::var("CCE_HOVER_DEBUG").is_ok() {
+ let t = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_millis() % 100000;
+ eprintln!("[hover] t={} move ({:.0},{:.0}) changed={}", t, self.cursor_x, self.cursor_y, changed);
+ }
changed
}
diff --git a/src/renderer.rs b/src/renderer.rs
index 283dea4..ecc700b 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -91,6 +91,10 @@ fn collect_window_child(
impl SystemInterface {
pub(crate) fn rebuild_layout(&mut self, sw: f32, sh: f32) {
+ if std::env::var("CCE_HOVER_DEBUG").is_ok() {
+ let t = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_millis() % 100000;
+ eprintln!("[hover] t={} rebuild", t);
+ }
// SectionContainer dissolved (Phase 6w): no per-rebuild section clones to
// relink — the page's widgets dispatch directly (registration happens in
// render_widget during the view pass below).