From e9b87cb1dff2aea23b4317a535956e9b72fef59e Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Wed, 5 Mar 2025 17:56:19 +0100 Subject: [PATCH] fix: conditional features and tests --- examples/applet/src/window.rs | 2 +- examples/nav-context/src/main.rs | 6 +++--- examples/open-dialog/src/main.rs | 20 ++------------------ src/action.rs | 6 ++++-- src/command.rs | 2 ++ src/core.rs | 6 ++++++ src/surface/mod.rs | 1 + src/widget/mod.rs | 1 - 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/examples/applet/src/window.rs b/examples/applet/src/window.rs index ca023729..ddd48454 100644 --- a/examples/applet/src/window.rs +++ b/examples/applet/src/window.rs @@ -6,7 +6,7 @@ use cosmic::iced::{self, Length, Limits, Task}; use cosmic::iced_runtime::core::window; use cosmic::iced_runtime::platform_specific::wayland::popup::SctkPopupSettings; use cosmic::iced_runtime::platform_specific::wayland::subsurface; -use cosmic::surface_message::{MessageWrapper, SurfaceMessage}; +use cosmic::surface::{MessageWrapper, SurfaceMessage}; use cosmic::widget::dropdown::DropdownView; use cosmic::widget::{autosize, dropdown, layer_container, list_column, settings, toggler}; use cosmic::{iced_core, Element}; diff --git a/examples/nav-context/src/main.rs b/examples/nav-context/src/main.rs index 58e20849..be458171 100644 --- a/examples/nav-context/src/main.rs +++ b/examples/nav-context/src/main.rs @@ -70,10 +70,10 @@ pub enum NavMenuAction { } impl menu::Action for NavMenuAction { - type Message = cosmic::app::Message; + type Message = cosmic::Action; fn message(&self) -> Self::Message { - cosmic::app::Message::App(Message::NavMenuAction(*self)) + cosmic::Action::App(Message::NavMenuAction(*self)) } } @@ -131,7 +131,7 @@ impl cosmic::Application for App { fn nav_context_menu( &self, id: nav_bar::Id, - ) -> Option>>> { + ) -> Option>>> { Some(menu::items( &HashMap::new(), vec![ diff --git a/examples/open-dialog/src/main.rs b/examples/open-dialog/src/main.rs index a4b5f00d..0edac466 100644 --- a/examples/open-dialog/src/main.rs +++ b/examples/open-dialog/src/main.rs @@ -7,7 +7,6 @@ use apply::Apply; use cosmic::app::{Core, Settings, Task}; use cosmic::dialog::file_chooser::{self, FileFilter}; use cosmic::iced_core::Length; -use cosmic::surface_message::{MessageWrapper, SurfaceMessage}; use cosmic::widget::button; use cosmic::{executor, iced, ApplicationExt, Element}; use std::sync::Arc; @@ -35,22 +34,7 @@ pub enum Message { OpenError(Arc), OpenFile, Selected(Url), - Surface(SurfaceMessage), -} - -impl From for MessageWrapper { - fn from(value: Message) -> Self { - match value { - Message::Surface(s) => MessageWrapper::Surface(s), - m => MessageWrapper::Message(m), - } - } -} - -impl From for Message { - fn from(value: SurfaceMessage) -> Self { - Message::Surface(value) - } + Surface(cosmic::surface::Action), } /// The [`App`] stores application-specific state. @@ -202,7 +186,7 @@ impl cosmic::Application for App { Message::CloseError => { self.error_status = None; } - Message::Surface(surface_message) => {} + Message::Surface(surface) => {} } Task::none() diff --git a/src/action.rs b/src/action.rs index 23a98685..f7ddd6f1 100644 --- a/src/action.rs +++ b/src/action.rs @@ -1,12 +1,13 @@ // Copyright 2023 System76 // SPDX-License-Identifier: MPL-2.0 +#[cfg(feature = "winit")] use crate::app; pub const fn app(message: M) -> Action { Action::App(message) } - +#[cfg(feature = "winit")] pub const fn cosmic(message: app::Action) -> Action { Action::Cosmic(message) } @@ -20,9 +21,10 @@ pub const fn none() -> Action { pub enum Action { /// Messages from the application, for the application. App(M), + #[cfg(feature = "winit")] /// Internal messages to be handled by libcosmic. Cosmic(app::Action), - #[cfg(feature = "single-instance")] + #[cfg(all(feature = "winit", feature = "single-instance"))] /// Dbus activation messages DbusActivation(app::DbusActivationMessage), /// Do nothing diff --git a/src/command.rs b/src/command.rs index cb68204a..73c900c1 100644 --- a/src/command.rs +++ b/src/command.rs @@ -24,10 +24,12 @@ pub fn set_title(id: window::Id, title: String) -> iced::Task(factor: f32) -> iced::Task> { iced::Task::done(crate::app::Action::ScaleFactor(factor)).map(crate::Action::Cosmic) } +#[cfg(feature = "winit")] pub fn set_theme(theme: crate::Theme) -> iced::Task> { iced::Task::done(crate::app::Action::AppThemeChange(theme)).map(crate::Action::Cosmic) } diff --git a/src/core.rs b/src/core.rs index 611b9a0e..fdeeba5b 100644 --- a/src/core.rs +++ b/src/core.rs @@ -382,6 +382,7 @@ impl Core { id } + #[cfg(feature = "winit")] pub fn drag(&self, id: Option) -> crate::app::Task { let Some(id) = id.or(self.main_window) else { return iced::Task::none(); @@ -389,6 +390,7 @@ impl Core { crate::command::drag(id) } + #[cfg(feature = "winit")] pub fn maximize( &self, id: Option, @@ -400,6 +402,7 @@ impl Core { crate::command::maximize(id, maximized) } + #[cfg(feature = "winit")] pub fn minimize(&self, id: Option) -> crate::app::Task { let Some(id) = id.or(self.main_window) else { return iced::Task::none(); @@ -407,6 +410,7 @@ impl Core { crate::command::minimize(id) } + #[cfg(feature = "winit")] pub fn set_title( &self, id: Option, @@ -418,6 +422,7 @@ impl Core { crate::command::set_title(id, title) } + #[cfg(feature = "winit")] pub fn set_windowed(&self, id: Option) -> crate::app::Task { let Some(id) = id.or(self.main_window) else { return iced::Task::none(); @@ -425,6 +430,7 @@ impl Core { crate::command::set_windowed(id) } + #[cfg(feature = "winit")] pub fn toggle_maximize( &self, id: Option, diff --git a/src/surface/mod.rs b/src/surface/mod.rs index c08108ee..23c10a64 100644 --- a/src/surface/mod.rs +++ b/src/surface/mod.rs @@ -1,6 +1,7 @@ // Copyright 2025 System76 // SPDX-License-Identifier: MPL-2.0 +#[cfg(feature = "winit")] pub mod action; use iced::Limits; diff --git a/src/widget/mod.rs b/src/widget/mod.rs index 52d82832..75a3191c 100644 --- a/src/widget/mod.rs +++ b/src/widget/mod.rs @@ -97,7 +97,6 @@ pub mod aspect_ratio; #[cfg(feature = "autosize")] pub mod autosize; -#[cfg(feature = "winit")] pub(crate) mod responsive_container; #[cfg(feature = "surface-message")]