summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-01-02 20:17:24 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-01-02 20:17:36 +0100
commit6855961358d6b81d700afd65445c292fd0da4442 (patch)
treec2de1b39375037d9a54bb7f057f1197263b05dc0
parentd95b9bf244b5c1f7c8c3e84c1c05a5f81c9162e4 (diff)
downloadiced-6855961358d6b81d700afd65445c292fd0da4442.tar.gz
iced-6855961358d6b81d700afd65445c292fd0da4442.tar.bz2
iced-6855961358d6b81d700afd65445c292fd0da4442.zip
Create conversion function for `user_attention` in `iced_winit`
-rw-r--r--winit/src/application.rs14
-rw-r--r--winit/src/conversion.rs16
-rw-r--r--winit/src/window.rs2
3 files changed, 21 insertions, 11 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index f98a443b..7092e124 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -674,16 +674,10 @@ pub fn run_command<A, E>(
window::Action::ToggleDecorations => {
window.set_decorations(!window.is_decorated())
}
- window::Action::RequestUserAttention(attention_type) => window
- .request_user_attention(match attention_type {
- Some(window::UserAttention::Critical) => {
- Some(winit::window::UserAttentionType::Critical)
- }
- Some(window::UserAttention::Informational) => Some(
- winit::window::UserAttentionType::Informational,
- ),
- None => None,
- }),
+ 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> {