diff options
author | 2023-01-02 20:32:43 +0100 | |
---|---|---|
committer | 2023-01-02 20:32:43 +0100 | |
commit | d956b8a9fb9d0f18c5568c91fc7b97900477a68e (patch) | |
tree | c2de1b39375037d9a54bb7f057f1197263b05dc0 /winit | |
parent | 54105a24e11edb48670afa8246ad891af147aab5 (diff) | |
parent | 6855961358d6b81d700afd65445c292fd0da4442 (diff) | |
download | iced-d956b8a9fb9d0f18c5568c91fc7b97900477a68e.tar.gz iced-d956b8a9fb9d0f18c5568c91fc7b97900477a68e.tar.bz2 iced-d956b8a9fb9d0f18c5568c91fc7b97900477a68e.zip |
Merge pull request #1584 from Night-Hunter-NF/RequestUserAttention
add action to request user attention
Diffstat (limited to '')
-rw-r--r-- | winit/src/application.rs | 16 | ||||
-rw-r--r-- | winit/src/conversion.rs | 16 | ||||
-rw-r--r-- | winit/src/window.rs | 2 |
3 files changed, 27 insertions, 7 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 0f9b562e..7092e124 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -657,12 +657,6 @@ pub fn run_command<A, E>( mode, )); } - window::Action::ToggleMaximize => { - window.set_maximized(!window.is_maximized()) - } - window::Action::ToggleDecorations => { - window.set_decorations(!window.is_decorated()) - } window::Action::FetchMode(tag) => { let mode = if window.is_visible().unwrap_or(true) { conversion::mode(window.fullscreen()) @@ -674,6 +668,16 @@ pub fn run_command<A, E>( .send_event(tag(mode)) .expect("Send message to event loop"); } + window::Action::ToggleMaximize => { + window.set_maximized(!window.is_maximized()) + } + window::Action::ToggleDecorations => { + window.set_decorations(!window.is_decorated()) + } + window::Action::RequestUserAttention(user_attention) => window + .request_user_attention( + user_attention.map(conversion::user_attention), + ), }, command::Action::System(action) => match action { system::Action::QueryInformation(_tag) => { diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index b1076afe..1418e346 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -493,6 +493,22 @@ pub fn key_code( } } +/// Converts some [`UserAttention`] into it's `winit` counterpart. +/// +/// [`UserAttention`]: window::UserAttention +pub fn user_attention( + user_attention: window::UserAttention, +) -> winit::window::UserAttentionType { + match user_attention { + window::UserAttention::Critical => { + winit::window::UserAttentionType::Critical + } + window::UserAttention::Informational => { + winit::window::UserAttentionType::Informational + } + } +} + // As defined in: http://www.unicode.org/faq/private_use.html pub(crate) fn is_private_use_character(c: char) -> bool { matches!( diff --git a/winit/src/window.rs b/winit/src/window.rs index f6b43a0f..89db3262 100644 --- a/winit/src/window.rs +++ b/winit/src/window.rs @@ -2,7 +2,7 @@ use crate::command::{self, Command}; use iced_native::window; -pub use window::{Event, Mode}; +pub use window::{Event, Mode, UserAttention}; /// Closes the current window and exits the application. pub fn close<Message>() -> Command<Message> { |