wayland: add wayland-csd-adwaita-notitlebar feature

Addition to already present `notitle` feature.
This commit is contained in:
Timon 2025-10-08 05:11:55 +02:00 committed by GitHub
parent 2ede84ab2f
commit 5575f51483
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 11 additions and 6 deletions

View file

@ -14,6 +14,7 @@ default = ["dlopen", "csd-adwaita"]
csd-adwaita = ["sctk-adwaita", "sctk-adwaita/ab_glyph"]
csd-adwaita-crossfont = ["sctk-adwaita", "sctk-adwaita/crossfont"]
csd-adwaita-notitle = ["sctk-adwaita"]
csd-adwaita-notitlebar = ["csd-adwaita-notitle"]
dlopen = ["wayland-backend/dlopen"]
serde = ["dep:serde", "bitflags/serde", "smol_str/serde", "dpi/serde"]

View file

@ -13,6 +13,7 @@
//! * `wayland-csd-adwaita` (default).
//! * `wayland-csd-adwaita-crossfont`.
//! * `wayland-csd-adwaita-notitle`.
//! * `wayland-csd-adwaita-notitlebar`.
use std::ffi::c_void;
use std::ptr::NonNull;

View file

@ -302,7 +302,7 @@ impl WindowState {
subcompositor.clone(),
self.queue_handle.clone(),
#[cfg(feature = "sctk-adwaita")]
into_sctk_adwaita_config(self.theme),
create_sctk_adwaita_config(self.theme),
) {
Ok(mut frame) => {
frame.set_title(&self.title);
@ -816,7 +816,7 @@ impl WindowState {
self.theme = theme;
#[cfg(feature = "sctk-adwaita")]
if let Some(frame) = self.frame.as_mut() {
frame.set_config(into_sctk_adwaita_config(theme))
frame.set_config(create_sctk_adwaita_config(theme))
}
}
@ -1228,12 +1228,14 @@ fn resize_direction_to_xdg(direction: ResizeDirection) -> XdgResizeEdge {
}
}
// NOTE: Rust doesn't allow `From<Option<Theme>>`.
#[cfg(feature = "sctk-adwaita")]
fn into_sctk_adwaita_config(theme: Option<Theme>) -> sctk_adwaita::FrameConfig {
match theme {
fn create_sctk_adwaita_config(theme: Option<Theme>) -> sctk_adwaita::FrameConfig {
let config = match theme {
Some(Theme::Light) => sctk_adwaita::FrameConfig::light(),
Some(Theme::Dark) => sctk_adwaita::FrameConfig::dark(),
None => sctk_adwaita::FrameConfig::auto(),
}
};
#[cfg(feature = "csd-adwaita-notitlebar")]
let config = config.hide_titlebar(true);
config
}

View file

@ -57,6 +57,7 @@ wayland = ["winit-wayland"]
wayland-csd-adwaita = ["winit-wayland/csd-adwaita"]
wayland-csd-adwaita-crossfont = ["winit-wayland/csd-adwaita-crossfont"]
wayland-csd-adwaita-notitle = ["winit-wayland/csd-adwaita-notitle"]
wayland-csd-adwaita-notitlebar = ["winit-wayland/csd-adwaita-notitlebar"]
wayland-dlopen = ["winit-wayland/dlopen"]
x11 = ["dep:winit-x11"]