git.lucas.co / cce-mail
mail client (IMAP/SMTP)
git clone https://git.lucas.co/cce-mail.git

commit8c778afbeadb2c9dcdb7690f0d3e0fe90dd4c7de
parenta83b2a59f9
authorLucas Galante <[email protected]>
date2026-08-06 12:39
fix: pump ui_context.tick — dropdown menus' close animation froze fully open

cce-ui's Dropdown (741ced0..e0bcd1e) keeps open=true through its
animated contraction and relies on the ctx tick walk to advance and
settle it. Same fix as cce-files@b69b61f; the cce-data-editor pattern.

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 ef077b6..e6e8f0a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1930,6 +1930,15 @@ impl Application for ClearEmailApp {
     }
 
     fn tick(&mut self, dt: f32, needs_rebuild: &mut bool) {
+        // Pump the widget tick walk: animating widgets (dropdown menus'
+        // expand/contract) register as tick receivers and report changed
+        // until their transition lands — without this a closing menu freezes
+        // fully open.
+        if self.ui_context.tick(dt) {
+            *needs_rebuild = true;
+            self.needs_rebuild = true;
+        }
+
         if let Some((_, ref mut timer)) = self.status_message {
             *timer -= dt;
             if *timer <= 0.0 {