feat: allow creating apps with no main window on wayland

This commit is contained in:
Ashley Wulber 2023-08-23 14:51:49 -04:00
parent db8e791b87
commit 89dba15efe
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820
2 changed files with 21 additions and 11 deletions

View file

@ -80,7 +80,10 @@ pub fn run<App: Application>(settings: Settings, flags: App::Flags) -> iced::Res
{ {
use iced::wayland::actions::window::SctkWindowSettings; use iced::wayland::actions::window::SctkWindowSettings;
use iced_sctk::settings::InitialSurface; use iced_sctk::settings::InitialSurface;
iced.initial_surface = InitialSurface::XdgWindow(SctkWindowSettings { iced.initial_surface = if settings.no_main_window {
InitialSurface::None
} else {
InitialSurface::XdgWindow(SctkWindowSettings {
app_id: Some(App::APP_ID.to_owned()), app_id: Some(App::APP_ID.to_owned()),
autosize: settings.autosize, autosize: settings.autosize,
client_decorations: settings.client_decorations, client_decorations: settings.client_decorations,
@ -90,7 +93,8 @@ pub fn run<App: Application>(settings: Settings, flags: App::Flags) -> iced::Res
title: None, title: None,
transparent: settings.transparent, transparent: settings.transparent,
..SctkWindowSettings::default() ..SctkWindowSettings::default()
}); })
};
} }
#[cfg(not(feature = "wayland"))] #[cfg(not(feature = "wayland"))]

View file

@ -19,6 +19,10 @@ pub struct Settings {
#[cfg(feature = "wayland")] #[cfg(feature = "wayland")]
pub(crate) autosize: bool, pub(crate) autosize: bool,
/// Set the application to not create a main window
#[cfg(feature = "wayland")]
pub(crate) no_main_window: bool,
/// Whether the window should have a border, a title bar, etc. or not. /// Whether the window should have a border, a title bar, etc. or not.
pub(crate) client_decorations: bool, pub(crate) client_decorations: bool,
@ -71,6 +75,8 @@ impl Default for Settings {
antialiasing: true, antialiasing: true,
#[cfg(feature = "wayland")] #[cfg(feature = "wayland")]
autosize: false, autosize: false,
#[cfg(feature = "wayland")]
no_main_window: false,
client_decorations: true, client_decorations: true,
debug: false, debug: false,
default_font: font::FONT, default_font: font::FONT,