From 2641356d41199a40ccc9a2e9f61bd34d7e7c8220 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 16 Dec 2025 08:00:39 +0300 Subject: [PATCH] mru: Don't handle pointer input until visible --- src/ui/mru.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ui/mru.rs b/src/ui/mru.rs index 1b2aca1d..0b717768 100644 --- a/src/ui/mru.rs +++ b/src/ui/mru.rs @@ -966,7 +966,7 @@ impl WindowMruUi { MruCloseRequest::Confirm => inner.wmru.current_id, }; - if inner.clock.now_unadjusted() < inner.open_at { + if !inner.is_fully_open() { // Hasn't displayed yet, no need to fade out. let UiState::Closed { previous_scope } = &mut self.state else { unreachable!() @@ -1026,6 +1026,10 @@ impl WindowMruUi { let UiState::Open(inner) = &mut self.state else { return None; }; + // Don't handle pointer until the UI is visible. + if !inner.is_fully_open() { + return None; + } inner.freeze_view = true; @@ -1098,7 +1102,7 @@ impl WindowMruUi { UiState::Closed { .. } => return None, UiState::Closing { inner, anim } => (inner, anim.clamped_value()), UiState::Open(inner) => { - if inner.open_at <= inner.clock.now_unadjusted() { + if inner.is_fully_open() { (inner, 1.) } else { return None; @@ -1286,6 +1290,10 @@ impl Inner { } } + fn is_fully_open(&self) -> bool { + self.open_at <= self.clock.now_unadjusted() + } + fn animate_view_pos_from(&mut self, from: f64) { let config = self.config.borrow().animations.window_movement.0; self.view_pos