mru: Don't handle pointer input until visible

This commit is contained in:
Ivan Molodetskikh
2025-12-16 08:00:39 +03:00
parent 7c0898570c
commit 2641356d41
+10 -2
View File
@@ -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