diff --git a/crates/bevy_winit/src/state.rs b/crates/bevy_winit/src/state.rs index 0a775293f7..f2e2a09a6e 100644 --- a/crates/bevy_winit/src/state.rs +++ b/crates/bevy_winit/src/state.rs @@ -456,7 +456,6 @@ impl ApplicationHandler for WinitAppRunnerState { // Have the startup behavior run in about_to_wait, which prevents issues with // invisible window creation. https://github.com/bevyengine/bevy/issues/18027 if self.startup_forced_updates == 0 { - self.redraw_requested = true; self.redraw_requested(_event_loop); } } @@ -510,11 +509,14 @@ impl ApplicationHandler for WinitAppRunnerState { let winit_windows = self.world().non_send_resource::(); let headless = winit_windows.windows.is_empty(); let exiting = self.app_exit.is_some(); + let reactive = matches!(self.update_mode, UpdateMode::Reactive { .. }); let all_invisible = winit_windows .windows .iter() .all(|(_, w)| !w.is_visible().unwrap_or(false)); - if !exiting && (self.startup_forced_updates > 0 || headless || all_invisible) { + if !exiting + && (self.startup_forced_updates > 0 || headless || all_invisible || reactive) + { self.redraw_requested(event_loop); } }