diff options
-rw-r--r-- | runtime/src/window.rs | 8 | ||||
-rw-r--r-- | winit/src/program.rs | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/runtime/src/window.rs b/runtime/src/window.rs index 598ee491..cdef70e3 100644 --- a/runtime/src/window.rs +++ b/runtime/src/window.rs @@ -164,6 +164,9 @@ pub enum Action { /// Set the maximum inner window size. SetMaxSize(Id, Option<Size>), + + /// Set the window to be resizable or not. + SetResizable(Id, bool), } /// Subscribes to the frames of the window of the running application. @@ -274,6 +277,11 @@ pub fn resize<T>(id: Id, new_size: Size) -> Task<T> { task::effect(crate::Action::Window(Action::Resize(id, new_size))) } +/// Set the window to be resizable or not. +pub fn resizable<T>(id: Id, resizable: bool) -> Task<T> { + task::effect(crate::Action::Window(Action::SetResizable(id, resizable))) +} + /// Get the window's size in logical dimensions. pub fn get_size(id: Id) -> Task<Size> { task::oneshot(move |channel| { diff --git a/winit/src/program.rs b/winit/src/program.rs index 58fec9df..416c8e70 100644 --- a/winit/src/program.rs +++ b/winit/src/program.rs @@ -1316,6 +1316,11 @@ fn run_action<P, C>( window.raw.set_title(&title); } } + window::Action::SetResizable(id, resizable) => { + if let Some(window) = window_manager.get_mut(id) { + window.raw.set_resizable(resizable); + } + } window::Action::GetSize(id, channel) => { if let Some(window) = window_manager.get_mut(id) { let size = window |