summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorLibravatar ShootingStarDragons <ShootingStarDragons@protonmail.com>2023-11-24 16:08:03 +0800
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-03 14:54:59 +0100
commit6e97595d953811fe3f5877e13022c3b5d3b070a6 (patch)
tree86a56f68ac6dae948ccc2779defa63f0e6fcd3bf /runtime
parent0b2c9db22868c43e4dd160b66abddce0846991b1 (diff)
downloadiced-6e97595d953811fe3f5877e13022c3b5d3b070a6.tar.gz
iced-6e97595d953811fe3f5877e13022c3b5d3b070a6.tar.bz2
iced-6e97595d953811fe3f5877e13022c3b5d3b070a6.zip
feat: somewhere to place extra actions by platform
I have view iced-sckt forked iced, and add the extra actions. and there do are some extra actions, like set margin for layer-shell, set lock for ext-session-shell. I think add an any will be of help maybe
Diffstat (limited to 'runtime')
-rw-r--r--runtime/src/command/action.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/src/command/action.rs b/runtime/src/command/action.rs
index cb0936df..d119141b 100644
--- a/runtime/src/command/action.rs
+++ b/runtime/src/command/action.rs
@@ -5,6 +5,7 @@ use crate::system;
use crate::window;
use iced_futures::MaybeSend;
+use std::any::Any;
use std::borrow::Cow;
use std::fmt;
@@ -43,6 +44,9 @@ pub enum Action<T> {
/// The message to produce when the font has been loaded.
tagger: Box<dyn Fn(Result<(), font::Error>) -> T>,
},
+
+ /// Pass PlatformSpecific action, for some special platform
+ PlatformSpecific(Box<dyn Any>)
}
impl<T> Action<T> {
@@ -72,6 +76,7 @@ impl<T> Action<T> {
bytes,
tagger: Box::new(move |result| f(tagger(result))),
},
+ Self::PlatformSpecific(special) => Action::PlatformSpecific(special)
}
}
}
@@ -90,6 +95,7 @@ impl<T> fmt::Debug for Action<T> {
Self::System(action) => write!(f, "Action::System({action:?})"),
Self::Widget(_action) => write!(f, "Action::Widget"),
Self::LoadFont { .. } => write!(f, "Action::LoadFont"),
+ Self::PlatformSpecific(_) => write!(f, "Action::PlatformSpecific")
}
}
}