fix: apply App::Executor to multi-window instance
This commit is contained in:
parent
fde0516484
commit
d84447aaad
4 changed files with 14 additions and 11 deletions
|
|
@ -154,7 +154,7 @@ pub fn run<App: Application>(settings: Settings, flags: App::Flags) -> iced::Res
|
|||
}
|
||||
#[cfg(feature = "multi-window")]
|
||||
{
|
||||
let mut app = multi_window::multi_window(
|
||||
let mut app = multi_window::multi_window::<_, _, _, _, App::Executor>(
|
||||
cosmic::Cosmic::title,
|
||||
cosmic::Cosmic::update,
|
||||
cosmic::Cosmic::view,
|
||||
|
|
@ -390,7 +390,7 @@ where
|
|||
}
|
||||
#[cfg(feature = "multi-window")]
|
||||
{
|
||||
let mut app = multi_window::multi_window(
|
||||
let mut app = multi_window::multi_window::<_, _, _, _, App::Executor>(
|
||||
cosmic::Cosmic::title,
|
||||
cosmic::Cosmic::update,
|
||||
cosmic::Cosmic::view,
|
||||
|
|
|
|||
|
|
@ -13,17 +13,18 @@ use iced::{Element, Result, Settings, Subscription, Task};
|
|||
|
||||
use std::marker::PhantomData;
|
||||
|
||||
pub(crate) struct Instance<State, Message, Theme, Renderer, Update, View> {
|
||||
pub(crate) struct Instance<State, Message, Theme, Renderer, Update, View, Executor> {
|
||||
update: Update,
|
||||
view: View,
|
||||
_state: PhantomData<State>,
|
||||
_message: PhantomData<Message>,
|
||||
_theme: PhantomData<Theme>,
|
||||
_renderer: PhantomData<Renderer>,
|
||||
_executor: PhantomData<Executor>,
|
||||
}
|
||||
|
||||
/// Creates an iced [`MultiWindow`] given its title, update, and view logic.
|
||||
pub fn multi_window<State, Message, Theme, Renderer>(
|
||||
pub fn multi_window<State, Message, Theme, Renderer, Executor>(
|
||||
title: impl Title<State>,
|
||||
update: impl application::Update<State, Message>,
|
||||
view: impl for<'a> self::View<'a, State, Message, Theme, Renderer>,
|
||||
|
|
@ -33,23 +34,25 @@ where
|
|||
Message: Send + std::fmt::Debug + 'static,
|
||||
Theme: Default + DefaultStyle,
|
||||
Renderer: program::Renderer,
|
||||
Executor: iced::Executor,
|
||||
{
|
||||
use std::marker::PhantomData;
|
||||
|
||||
impl<State, Message, Theme, Renderer, Update, View> Program
|
||||
for Instance<State, Message, Theme, Renderer, Update, View>
|
||||
impl<State, Message, Theme, Renderer, Update, View, Executor> Program
|
||||
for Instance<State, Message, Theme, Renderer, Update, View, Executor>
|
||||
where
|
||||
Message: Send + std::fmt::Debug + 'static,
|
||||
Theme: Default + DefaultStyle,
|
||||
Renderer: program::Renderer,
|
||||
Update: application::Update<State, Message>,
|
||||
View: for<'a> self::View<'a, State, Message, Theme, Renderer>,
|
||||
Executor: iced::Executor,
|
||||
{
|
||||
type State = State;
|
||||
type Message = Message;
|
||||
type Theme = Theme;
|
||||
type Renderer = Renderer;
|
||||
type Executor = iced_futures::backend::default::Executor;
|
||||
type Executor = Executor;
|
||||
|
||||
fn update(&self, state: &mut Self::State, message: Self::Message) -> Task<Self::Message> {
|
||||
self.update.update(state, message).into()
|
||||
|
|
@ -72,6 +75,7 @@ where
|
|||
_message: PhantomData,
|
||||
_theme: PhantomData,
|
||||
_renderer: PhantomData,
|
||||
_executor: PhantomData::<Executor>,
|
||||
},
|
||||
settings: Settings::default(),
|
||||
window: None,
|
||||
|
|
|
|||
|
|
@ -188,11 +188,9 @@ impl Context {
|
|||
&self,
|
||||
icon: widget::icon::Handle,
|
||||
) -> crate::widget::Button<'a, Message> {
|
||||
let mut suggested = self.suggested_size(icon.symbolic);
|
||||
let suggested = self.suggested_size(icon.symbolic);
|
||||
let applet_padding = self.suggested_padding(icon.symbolic);
|
||||
|
||||
let is_horizontal = self.is_horizontal();
|
||||
|
||||
let symbolic = icon.symbolic;
|
||||
|
||||
crate::widget::button::custom(
|
||||
|
|
@ -414,7 +412,7 @@ pub fn run<App: Application>(flags: App::Flags) -> iced::Result {
|
|||
|
||||
// TODO make multi-window not mandatory
|
||||
|
||||
let mut app = super::app::multi_window::multi_window(
|
||||
let mut app = super::app::multi_window::multi_window::<_, _, _, _, App::Executor>(
|
||||
cosmic::Cosmic::title,
|
||||
cosmic::Cosmic::update,
|
||||
cosmic::Cosmic::view,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue