[vlc-commits] macosx: Disable automatic switching between dark and bright mode for now

David Fuhrmann git at videolan.org
Sun Dec 16 20:17:54 CET 2018


vlc/vlc-3.0 | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Sun Dec 16 20:04:38 2018 +0100| [65b7360a6aac1c6a43e599bbdb6e5f8c1d59d5e1] | committer: David Fuhrmann

macosx: Disable automatic switching between dark and bright mode for now

It seems on macOS Mojave, _automatic_ switching between dark and
bright mode automatically opts into layer baked mode, which in
turn changes some internals related to openGL rendering, breaking
the Aspect ratio of the movies (see radar 45895864 for details).

However, manually setting the dark appearance works and does not
break the vout, so lets do that in case the user selected dark
in VLCs preferences.

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=65b7360a6aac1c6a43e599bbdb6e5f8c1d59d5e1
---

 modules/gui/macosx/VLCMain.m                  | 10 ++++++++++
 modules/gui/macosx/VLCSimplePrefsController.m | 23 +++++------------------
 share/Info.plist.in                           |  2 +-
 3 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/modules/gui/macosx/VLCMain.m b/modules/gui/macosx/VLCMain.m
index 8397c0fb5c..b561cd5bf7 100644
--- a/modules/gui/macosx/VLCMain.m
+++ b/modules/gui/macosx/VLCMain.m
@@ -95,6 +95,16 @@ int OpenIntf (vlc_object_t *p_this)
             [VLCApplication sharedApplication];
             [VLCMain sharedInstance];
 
+            if (@available(macOS 10.14, *)) {
+                if (var_InheritBool(getIntf(), "macosx-interfacestyle")) {
+
+                    // Use the native dark appearance style on Mojave
+                    // Automatic switching between both styles does not work yet, see commit msg
+                    NSApplication *app = [NSApplication sharedApplication];
+                    app.appearance = [NSAppearance appearanceNamed: NSAppearanceNameDarkAqua];
+                }
+            }
+
             [NSBundle loadNibNamed:@"MainMenu" owner:[[VLCMain sharedInstance] mainMenu]];
             [[[VLCMain sharedInstance] mainWindow] makeKeyAndOrderFront:nil];
 
diff --git a/modules/gui/macosx/VLCSimplePrefsController.m b/modules/gui/macosx/VLCSimplePrefsController.m
index 0096754b0f..8fa8d9383e 100644
--- a/modules/gui/macosx/VLCSimplePrefsController.m
+++ b/modules/gui/macosx/VLCSimplePrefsController.m
@@ -579,25 +579,12 @@ static inline const char * __config_GetLabel(vlc_object_t *p_this, const char *p
     BOOL growlEnabled = [self hasModule:@"growl" inConfig:@"control"];
     [_intf_enableNotificationsCheckbox setState: growlEnabled ? NSOnState : NSOffState];
 
-    if (@available(macOS 10.14, *)) {
-        _intf_style_darkButtonCell.enabled = NO;
-        _intf_style_brightButtonCell.enabled = NO;
-
-        if ([self.contentView.effectiveAppearance.name isEqualToString:NSAppearanceNameDarkAqua]) {
-            [_intf_style_darkButtonCell setState: YES];
-            [_intf_style_brightButtonCell setState: NO];
-        } else {
-            [_intf_style_darkButtonCell setState: NO];
-            [_intf_style_brightButtonCell setState: YES];
-        }
+    if (config_GetInt(p_intf, "macosx-interfacestyle")) {
+        [_intf_style_darkButtonCell setState: YES];
+        [_intf_style_brightButtonCell setState: NO];
     } else {
-        if (config_GetInt(p_intf, "macosx-interfacestyle")) {
-            [_intf_style_darkButtonCell setState: YES];
-            [_intf_style_brightButtonCell setState: NO];
-        } else {
-            [_intf_style_darkButtonCell setState: NO];
-            [_intf_style_brightButtonCell setState: YES];
-        }
+        [_intf_style_darkButtonCell setState: NO];
+        [_intf_style_brightButtonCell setState: YES];
     }
 
     BOOL httpEnabled = [self hasModule:@"http" inConfig:@"extraintf"];
diff --git a/share/Info.plist.in b/share/Info.plist.in
index b6f88bd75d..49fc3a072f 100644
--- a/share/Info.plist.in
+++ b/share/Info.plist.in
@@ -5,7 +5,7 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<key>NSRequiresAquaSystemAppearance</key>
-	<false/>
+	<true/>
 	<key>CFBundleDocumentTypes</key>
 	<array>
 		<dict>



More information about the vlc-commits mailing list