From 5575f5148325f89e110bd914bc914a57ca7fdd12 Mon Sep 17 00:00:00 2001 From: Timon Date: Wed, 8 Oct 2025 05:11:55 +0200 Subject: [PATCH] wayland: add wayland-csd-adwaita-notitlebar feature Addition to already present `notitle` feature. --- winit-wayland/Cargo.toml | 1 + winit-wayland/src/lib.rs | 1 + winit-wayland/src/window/state.rs | 14 ++++++++------ winit/Cargo.toml | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/winit-wayland/Cargo.toml b/winit-wayland/Cargo.toml index b2bcfe870..39ec4fdcc 100644 --- a/winit-wayland/Cargo.toml +++ b/winit-wayland/Cargo.toml @@ -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"] diff --git a/winit-wayland/src/lib.rs b/winit-wayland/src/lib.rs index c143840d1..b79269743 100644 --- a/winit-wayland/src/lib.rs +++ b/winit-wayland/src/lib.rs @@ -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; diff --git a/winit-wayland/src/window/state.rs b/winit-wayland/src/window/state.rs index 899b0e017..f917b6d53 100644 --- a/winit-wayland/src/window/state.rs +++ b/winit-wayland/src/window/state.rs @@ -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>`. #[cfg(feature = "sctk-adwaita")] -fn into_sctk_adwaita_config(theme: Option) -> sctk_adwaita::FrameConfig { - match theme { +fn create_sctk_adwaita_config(theme: Option) -> 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 } diff --git a/winit/Cargo.toml b/winit/Cargo.toml index 2dcc5ff07..32580a8fb 100644 --- a/winit/Cargo.toml +++ b/winit/Cargo.toml @@ -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"]