diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 3aba2cbffb..4fc5dc564c 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -1005,6 +1005,13 @@ impl MutableAppContext { .and_then(|window| window.root_view.clone().downcast::()) } + pub fn window_is_active(&self, window_id: usize) -> bool { + self.cx + .windows + .get(&window_id) + .map_or(false, |window| window.is_active) + } + pub fn render_view( &mut self, window_id: usize, diff --git a/crates/gpui/src/presenter.rs b/crates/gpui/src/presenter.rs index a7d715fadf..451f14567a 100644 --- a/crates/gpui/src/presenter.rs +++ b/crates/gpui/src/presenter.rs @@ -122,8 +122,10 @@ impl Presenter { self.text_layout_cache.finish_frame(); self.cursor_styles = scene.cursor_styles(); - if let Some(event) = self.last_mouse_moved_event.clone() { - self.dispatch_event(event, cx) + if cx.window_is_active(self.window_id) { + if let Some(event) = self.last_mouse_moved_event.clone() { + self.dispatch_event(event, cx) + } } } else { log::error!("could not find root_view_id for window {}", self.window_id);