diff options
author | 2024-10-11 12:16:52 +0200 | |
---|---|---|
committer | 2025-01-06 23:20:51 +0100 | |
commit | f5f075e5cdff84a58c181c498653b7ab66c9531a (patch) | |
tree | 2c9a983bb5f6d50f63ac13a9719700af7e59bee6 | |
parent | 8ebbfa9767bcb8f8efd43cc1c7d40e9c61f6c461 (diff) | |
download | iced-f5f075e5cdff84a58c181c498653b7ab66c9531a.tar.gz iced-f5f075e5cdff84a58c181c498653b7ab66c9531a.tar.bz2 iced-f5f075e5cdff84a58c181c498653b7ab66c9531a.zip |
window resizable task
-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 |