From: Andreas Pehrson <apehrson@mozilla.com>
Date: Mon, 16 Sep 2024 14:51:00 +0000
Subject: Bug 1918996 - Use SCShareableContentStyleNone on macOS 15.
 r=webrtc-reviewers,jib

Differential Revision: https://phabricator.services.mozilla.com/D222270
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/ade6f6dc0c5a5df1c87e78a45b2878c4ade54358
---
 modules/desktop_capture/mac/screen_capturer_sck.mm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/modules/desktop_capture/mac/screen_capturer_sck.mm b/modules/desktop_capture/mac/screen_capturer_sck.mm
index 92c7dadebe..0d48a340ae 100644
--- a/modules/desktop_capture/mac/screen_capturer_sck.mm
+++ b/modules/desktop_capture/mac/screen_capturer_sck.mm
@@ -331,10 +331,18 @@ void ScreenCapturerSck::EnsureVisible() {
   SCContentSharingPickerConfiguration* config = picker.defaultConfiguration;
   config.allowedPickerModes = picker_modes_;
   picker.defaultConfiguration = config;
+  SCShareableContentStyle style = SCShareableContentStyleNone;
   // Pick a sensible style to start out with, based on our current mode.
-  // Default to Screen because if using Window the picker automatically hides
-  // our current window to show others.
-  SCShareableContentStyle style = SCShareableContentStyleDisplay;
+  if (@available(macOS 15, *)) {
+    // Stick with None because if we use Display, the picker doesn't let us
+    // pick a window when first opened. Behaves like Window in 14 except doesn't
+    // change window focus.
+  } else {
+    // Default to Display because if using Window the picker automatically hides
+    // our current window to show others. Saves a click compared to None when
+    // picking a display.
+    style = SCShareableContentStyleDisplay;
+  }
   if (picker_modes_ == SCContentSharingPickerModeSingleDisplay) {
     style = SCShareableContentStyleDisplay;
   } else if (picker_modes_ == SCContentSharingPickerModeSingleWindow ||
