git.lucas.co / cce-files
file manager
git clone https://git.lucas.co/cce-files.git

commit7783095f3d32df4e812a3cb6a767a741d1d6b590
parent35f7dd97d1
authorLucas Galante <[email protected]>
date2026-07-12 20:49
fix: paginator dispatch via handle_event, not propagate (self-routing composite)

Same class as cce-layout-interface's fix: the Paginator's tree-registered
embedded strip made propagate's children-first descent consume its presses.
files' paginator sidebar is disabled (has_sidebar = false), so this is
parity, not an observable fix; the view-dropdown page switch is verified
live (Browse -> Network).

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018u7qTwzX95dd5ysAkaSCLk

 src/main.rs | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 50a272a..0461e36 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1199,8 +1199,9 @@ impl Application for FilesystemApp {
         }
 
         if !self.select_mode {
-            let ptr = self.paginator.as_ptr_mut();
-            if self.ui_context.propagate_event(&mv, ptr) {
+            // Self-routing composite: handle_event, not propagate — the router's
+            // children-first descent would let the embedded strip consume this.
+            if self.paginator.handle_event(&mv, &mut self.ui_context) {
                 changed = true;
             }
         }
@@ -1461,8 +1462,8 @@ impl Application for FilesystemApp {
         log::debug!("MOUSE INPUT: {:?} {:?} pos=({}, {})", button, state, pos.x, pos.y);
         let ev = cce_ui::widget::Event::MouseButton { button, state, x: pos.x, y: pos.y, local_x: pos.x, local_y: pos.y };
         let menu_match = !self.select_mode && {
-            let ptr = self.paginator.as_ptr_mut();
-            self.ui_context.propagate_event(&ev, ptr)
+            // Self-routing composite: handle_event, not propagate (see pointer move).
+            self.paginator.handle_event(&ev, &mut self.ui_context)
         };
         if menu_match {
             if let Some((idx, _)) = self.paginator.menu_click() {