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

commitb69b61f3340b08294ce004b24cadfae71af01130
parent7bbb5a9217
authorLucas Galante <[email protected]>
date2026-08-06 12:34
fix: pump ui_context.tick — the dropdown's animated menu froze mid-flight

The Dropdown's expand/contract menu (cce-ui 741ced0..e0bcd1e) keeps
open=true through its close animation and relies on the ctx tick walk
to advance and settle it; cce-files never called ui_context.tick, so
the menu only moved when an event happened to route through the widget
and a landed close never folded back to open=false — the popover hung
fully revealed after selection. The cce-data-editor pattern: tick the
context every frame, rebuild while it reports change.

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

 src/main.rs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/main.rs b/src/main.rs
index 7177c7a..065918e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1195,6 +1195,15 @@ impl Application for FilesystemApp {
     }
 
     fn tick(&mut self, dt: f32, needs_rebuild: &mut bool) {
+        // Pump the widget tick walk (the cce-data-editor pattern): animating
+        // widgets — the view dropdown's expand/contract menu — register as
+        // tick receivers and report changed until their transition lands;
+        // without this the close animation freezes at fully open.
+        if self.ui_context.tick(dt) {
+            *needs_rebuild = true;
+            self.needs_rebuild = true;
+        }
+
         if self.just_initialized {
             self.just_initialized = false;
             if self.save_mode {