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

commitf4e0c83e73be9df62feb38cddaddbdf55d7a97d5
parentf0b43e9072
authorLucas Galante <[email protected]>
date2026-08-12 18:27
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).