diff --git a/crates/bevy_window/src/window.rs b/crates/bevy_window/src/window.rs index ac0fce771a19f..c1d1465788a6d 100644 --- a/crates/bevy_window/src/window.rs +++ b/crates/bevy_window/src/window.rs @@ -82,6 +82,9 @@ pub enum WindowCommand { SetCursorPosition { position: Vec2, }, + SetMaximized { + maximized: bool, + }, } /// Defines the way a window is displayed @@ -140,6 +143,12 @@ impl Window { self.height } + #[inline] + pub fn set_maximized(&mut self, maximized: bool) { + self.command_queue + .push(WindowCommand::SetMaximized { maximized }); + } + pub fn set_resolution(&mut self, width: u32, height: u32) { self.width = width; self.height = height; diff --git a/crates/bevy_winit/src/lib.rs b/crates/bevy_winit/src/lib.rs index ca1a328c49051..62a9cda2c2f33 100644 --- a/crates/bevy_winit/src/lib.rs +++ b/crates/bevy_winit/src/lib.rs @@ -104,6 +104,10 @@ fn change_window(_: &mut World, resources: &mut Resources) { )) .unwrap_or_else(|e| error!("Unable to set cursor position: {}", e)); } + bevy_window::WindowCommand::SetMaximized { maximized } => { + let window = winit_windows.get_window(id).unwrap(); + window.set_maximized(maximized) + } } } }