From bbe5fe9d71eb3b53ce4e84e43ca9ecc1e95bf1b2 Mon Sep 17 00:00:00 2001
From: Andrew Bentley <andrew@bentley.codes>
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

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 


From 853e938096376b006287c2ad2b3d566bda9efd07 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Thu, 12 Aug 2021 20:46:38 +0700
Subject: Convert empty struct `PlatformSpecific` into empty type

---
 winit/src/settings/other.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winit/src/settings/other.rs b/winit/src/settings/other.rs
index a25beed0..b1103f62 100644
--- a/winit/src/settings/other.rs
+++ b/winit/src/settings/other.rs
@@ -1,3 +1,3 @@
 /// The platform specific window settings of an application.
 #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
-pub struct PlatformSpecific {}
+pub struct PlatformSpecific;
-- 
cgit 


From e3f170a341f610ab9622e92dbd9d0593814f1a25 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Thu, 12 Aug 2021 20:47:16 +0700
Subject: Fix minor formatting nitpicks

---
 winit/src/settings.rs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index 4ea61d61..045cb156 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -2,12 +2,15 @@
 #[cfg(target_os = "windows")]
 #[path = "settings/windows.rs"]
 mod platform;
+
 #[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;
-- 
cgit