refactor: make SurfaceMessage handling opt in
This commit is contained in:
parent
9352c0241e
commit
17ad618fae
4 changed files with 16 additions and 7 deletions
|
|
@ -71,7 +71,9 @@ wayland = [
|
||||||
"iced/wayland",
|
"iced/wayland",
|
||||||
"iced_winit/wayland",
|
"iced_winit/wayland",
|
||||||
"cctk",
|
"cctk",
|
||||||
|
"surface-message",
|
||||||
]
|
]
|
||||||
|
surface-message = []
|
||||||
# multi-window support
|
# multi-window support
|
||||||
multi-window = ["iced/multi-window"]
|
multi-window = ["iced/multi-window"]
|
||||||
# Render with wgpu
|
# Render with wgpu
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ use apply::Apply;
|
||||||
use cosmic::app::{Core, Settings, Task};
|
use cosmic::app::{Core, Settings, Task};
|
||||||
use cosmic::dialog::file_chooser::{self, FileFilter};
|
use cosmic::dialog::file_chooser::{self, FileFilter};
|
||||||
use cosmic::iced_core::Length;
|
use cosmic::iced_core::Length;
|
||||||
use cosmic::surface_message::{SurfaceMessage, SurfaceMessageHandler};
|
use cosmic::surface_message::{MessageWrapper, SurfaceMessage};
|
||||||
use cosmic::widget::button;
|
use cosmic::widget::button;
|
||||||
use cosmic::{executor, iced, ApplicationExt, Element};
|
use cosmic::{executor, iced, ApplicationExt, Element};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
@ -38,11 +38,11 @@ pub enum Message {
|
||||||
Surface(SurfaceMessage),
|
Surface(SurfaceMessage),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SurfaceMessageHandler for Message {
|
impl From<Message> for MessageWrapper<Message> {
|
||||||
fn to_surface_message(self) -> cosmic::surface_message::MessageWrapper<Self> {
|
fn from(value: Message) -> Self {
|
||||||
match self {
|
match value {
|
||||||
Message::Surface(m) => cosmic::surface_message::MessageWrapper::Surface(m),
|
Message::Surface(s) => MessageWrapper::Surface(s),
|
||||||
m => cosmic::surface_message::MessageWrapper::Message(m),
|
m => MessageWrapper::Message(m),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -388,7 +388,7 @@ impl Core {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "wayland")]
|
#[cfg(feature = "surface-message")]
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// Will panic if the menu bar collapses without tracking the size
|
/// Will panic if the menu bar collapses without tracking the size
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,13 @@ pub enum MessageWrapper<M> {
|
||||||
Message(M),
|
Message(M),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "surface-message"))]
|
||||||
|
impl<M> From<M> for MessageWrapper<M> {
|
||||||
|
fn from(value: M) -> Self {
|
||||||
|
MessageWrapper::Message(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Ignore this message in your application. It will be intercepted.
|
/// Ignore this message in your application. It will be intercepted.
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub enum SurfaceMessage {
|
pub enum SurfaceMessage {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue