From bbe5fe9d71eb3b53ce4e84e43ca9ecc1e95bf1b2 Mon Sep 17 00:00:00 2001 From: Andrew Bentley Date: Sun, 6 Dec 2020 11:13:53 +0100 Subject: Add PlatformSpecific winit settings for macOS --- winit/src/settings.rs | 22 +++++++++++++++++++--- winit/src/settings/macos.rs | 13 +++++++++++++ winit/src/settings/not_windows.rs | 6 ------ winit/src/settings/other.rs | 3 +++ 4 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 winit/src/settings/macos.rs delete mode 100644 winit/src/settings/not_windows.rs create mode 100644 winit/src/settings/other.rs (limited to 'winit') diff --git a/winit/src/settings.rs b/winit/src/settings.rs index 72a1a24a..4ea61d61 100644 --- a/winit/src/settings.rs +++ b/winit/src/settings.rs @@ -2,10 +2,12 @@ #[cfg(target_os = "windows")] #[path = "settings/windows.rs"] mod platform; -#[cfg(not(target_os = "windows"))] -#[path = "settings/not_windows.rs"] +#[cfg(target_os = "macos")] +#[path = "settings/macos.rs"] +mod platform; +#[cfg(not(any(target_os = "windows", target_os = "macos")))] +#[path = "settings/other.rs"] mod platform; - pub use platform::PlatformSpecific; use crate::conversion; @@ -137,6 +139,20 @@ impl Window { .with_drag_and_drop(self.platform_specific.drag_and_drop); } + #[cfg(target_os = "macos")] + { + use winit::platform::macos::WindowBuilderExtMacOS; + + window_builder = window_builder + .with_title_hidden(self.platform_specific.title_hidden) + .with_titlebar_transparent( + self.platform_specific.titlebar_transparent, + ) + .with_fullsize_content_view( + self.platform_specific.fullsize_content_view, + ); + } + window_builder = window_builder .with_fullscreen(conversion::fullscreen(primary_monitor, mode)); diff --git a/winit/src/settings/macos.rs b/winit/src/settings/macos.rs new file mode 100644 index 00000000..ad4c8cae --- /dev/null +++ b/winit/src/settings/macos.rs @@ -0,0 +1,13 @@ +#![cfg(target_os = "macos")] +//! Platform specific settings for macOS. + +/// The platform specific window settings of an application. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct PlatformSpecific { + /// Hides the window title. + pub title_hidden: bool, + /// Makes the titlebar transparent and allows the content to appear behind it. + pub titlebar_transparent: bool, + /// Makes the window content appear behind the titlebar. + pub fullsize_content_view: bool, +} diff --git a/winit/src/settings/not_windows.rs b/winit/src/settings/not_windows.rs deleted file mode 100644 index 5d703f84..00000000 --- a/winit/src/settings/not_windows.rs +++ /dev/null @@ -1,6 +0,0 @@ -#![cfg(not(target_os = "windows"))] -//! Platform specific settings for not Windows. - -/// The platform specific window settings of an application. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] -pub struct PlatformSpecific {} diff --git a/winit/src/settings/other.rs b/winit/src/settings/other.rs new file mode 100644 index 00000000..a25beed0 --- /dev/null +++ b/winit/src/settings/other.rs @@ -0,0 +1,3 @@ +/// The platform specific window settings of an application. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct PlatformSpecific {} -- cgit