[vlc-commits] macosx: Change OS constants to always include all higher OS versions

David Fuhrmann git at videolan.org
Sat Jun 10 21:27:23 CEST 2017


vlc | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Sat Jun 10 21:15:01 2017 +0200| [508ce668df0c53c35d671c0e13395ce11b041803] | committer: David Fuhrmann

macosx: Change OS constants to always include all higher OS versions

This fixes several cases where OSX_SIERRA was forgotten.
This seems to be a recurring problem and there is no need to limit
the constants to a specific macOS version. Usually, a feature
introduced in one version as also available on the subsequent ones.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=508ce668df0c53c35d671c0e13395ce11b041803
---

 modules/gui/macosx/CompatibilityFixes.h       | 14 ++++++--------
 modules/gui/macosx/NSScreen+VLCAdditions.m    |  2 +-
 modules/gui/macosx/VLCAboutWindowController.m |  2 +-
 modules/gui/macosx/VLCFSPanelController.m     |  2 +-
 modules/gui/macosx/VLCHelpWindowController.m  |  2 +-
 modules/gui/macosx/VLCMainWindowTitleView.m   | 12 ++++++------
 modules/gui/macosx/VLCStatusBarIcon.m         |  6 +++---
 modules/gui/macosx/VLCStringUtility.m         |  2 +-
 modules/gui/macosx/Windows.m                  |  4 ++--
 9 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/modules/gui/macosx/CompatibilityFixes.h b/modules/gui/macosx/CompatibilityFixes.h
index 0b2f933865..f98679c18d 100644
--- a/modules/gui/macosx/CompatibilityFixes.h
+++ b/modules/gui/macosx/CompatibilityFixes.h
@@ -25,14 +25,12 @@
 
 #pragma mark -
 #pragma OS detection code
-#define OSX_LION (NSAppKitVersionNumber < 1162 && NSAppKitVersionNumber >= 1115.2)
-#define OSX_MOUNTAIN_LION (NSAppKitVersionNumber < 1244 && NSAppKitVersionNumber >= 1162)
-#define OSX_MAVERICKS (NSAppKitVersionNumber < 1334 && NSAppKitVersionNumber >= 1244)
-#define OSX_YOSEMITE (NSAppKitVersionNumber < 1404 && NSAppKitVersionNumber >= 1334)
-#define OSX_EL_CAPITAN (NSAppKitVersionNumber >= 1404 && NSAppKitVersionNumber < 1485)
-#define OSX_SIERRA (NSAppKitVersionNumber >= 1485)
-
-#define OSX_YOSEMITE_OR_HIGHER (NSAppKitVersionNumber >= 1334)
+#define OSX_LION_AND_HIGHER (NSAppKitVersionNumber >= 1115.2)
+#define OSX_MOUNTAIN_LION_AND_HIGHER (NSAppKitVersionNumber >= 1162)
+#define OSX_MAVERICKS_AND_HIGHER (NSAppKitVersionNumber >= 1244)
+#define OSX_YOSEMITE_AND_HIGHER (NSAppKitVersionNumber >= 1334)
+#define OSX_EL_CAPITAN_AND_HIGHER (NSAppKitVersionNumber >= 1404)
+#define OSX_SIERRA_AND_HIGHER (NSAppKitVersionNumber >= 1485)
 
 // Sierra only APIs
 #ifndef MAC_OS_X_VERSION_10_12
diff --git a/modules/gui/macosx/NSScreen+VLCAdditions.m b/modules/gui/macosx/NSScreen+VLCAdditions.m
index 5074d280c6..5c4aeca1a3 100644
--- a/modules/gui/macosx/NSScreen+VLCAdditions.m
+++ b/modules/gui/macosx/NSScreen+VLCAdditions.m
@@ -37,7 +37,7 @@ static bool b_old_spaces_style = YES;
     /* init our fake object attribute */
     blackoutWindows = [[NSMutableArray alloc] initWithCapacity:1];
 
-    if (!OSX_LION && !OSX_MOUNTAIN_LION) {
+    if (OSX_MAVERICKS_AND_HIGHER) {
         NSUserDefaults *userDefaults = [[NSUserDefaults alloc] init];
         [userDefaults addSuiteNamed:@"com.apple.spaces"];
         /* this is system settings -> mission control -> monitors using different spaces */
diff --git a/modules/gui/macosx/VLCAboutWindowController.m b/modules/gui/macosx/VLCAboutWindowController.m
index 27e3fad8e3..edfea03273 100644
--- a/modules/gui/macosx/VLCAboutWindowController.m
+++ b/modules/gui/macosx/VLCAboutWindowController.m
@@ -141,7 +141,7 @@
                                  "\"http://www.videolan.org/contribute/\"><span style=\" text-decoration: "
                                  "underline; color:#0057ae;\">Help and join us!</span></a>"));
 
-    NSString *fontfamily = (OSX_YOSEMITE) ? @"Helvetica Neue" : @"Lucida Grande";
+    NSString *fontfamily = (OSX_YOSEMITE_AND_HIGHER) ? @"Helvetica Neue" : @"Lucida Grande";
     NSString *joinUsWithStyle = [NSString stringWithFormat:@"<div style=\"text-align:left;font-family: -apple-system, %@;\">%@</div>",
                                  fontfamily, joinus];
     NSAttributedString *joinus_readytorender = [[NSAttributedString alloc] initWithHTML:[joinUsWithStyle dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES] options:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:NSUTF8StringEncoding] forKey:NSCharacterEncodingDocumentOption] documentAttributes:NULL];
diff --git a/modules/gui/macosx/VLCFSPanelController.m b/modules/gui/macosx/VLCFSPanelController.m
index 4400a113eb..5ea3842218 100644
--- a/modules/gui/macosx/VLCFSPanelController.m
+++ b/modules/gui/macosx/VLCFSPanelController.m
@@ -82,7 +82,7 @@ static NSString *kAssociatedFullscreenRect = @"VLCFullscreenAssociatedWindowRect
 
 #ifdef MAC_OS_X_VERSION_10_10
     /* Inject correct background view depending on OS support */
-    if (OSX_YOSEMITE_OR_HIGHER) {
+    if (OSX_YOSEMITE_AND_HIGHER) {
         [self injectVisualEffectView];
     } else {
         [self injectBackgroundView];
diff --git a/modules/gui/macosx/VLCHelpWindowController.m b/modules/gui/macosx/VLCHelpWindowController.m
index 43d7ad6a3a..ed973de85e 100644
--- a/modules/gui/macosx/VLCHelpWindowController.m
+++ b/modules/gui/macosx/VLCHelpWindowController.m
@@ -60,7 +60,7 @@
 {
     NSString *htmlWithStyle = [NSString
                                stringWithFormat:@"<style>body { font-family: -apple-system, %@; }</style>%@",
-                               ((OSX_YOSEMITE) ? @"Helvetica Neue" : @"Lucida Grande"), _NS(I_LONGHELP)];
+                               ((OSX_YOSEMITE_AND_HIGHER) ? @"Helvetica Neue" : @"Lucida Grande"), _NS(I_LONGHELP)];
 
     [[helpWebView mainFrame] loadHTMLString:htmlWithStyle
                                     baseURL:[NSURL URLWithString:@"http://videolan.org"]];
diff --git a/modules/gui/macosx/VLCMainWindowTitleView.m b/modules/gui/macosx/VLCMainWindowTitleView.m
index e59edff64a..0f347d21e5 100644
--- a/modules/gui/macosx/VLCMainWindowTitleView.m
+++ b/modules/gui/macosx/VLCMainWindowTitleView.m
@@ -89,7 +89,7 @@
 {
     b_nativeFullscreenMode = var_InheritBool(getIntf(), "macosx-nativefullscreenmode");
 
-    if (!b_nativeFullscreenMode || OSX_YOSEMITE || OSX_EL_CAPITAN || OSX_SIERRA) {
+    if (!b_nativeFullscreenMode || OSX_YOSEMITE_AND_HIGHER) {
         [_fullscreenButton setHidden: YES];
     }
 
@@ -123,9 +123,9 @@
 - (NSImage *)getButtonImage:(NSString *)o_id
 {
     NSString *o_name = @"";
-    if (OSX_YOSEMITE || OSX_EL_CAPITAN) {
+    if (OSX_YOSEMITE_AND_HIGHER) {
         o_name = @"yosemite-";
-    } else { // OSX_LION, OSX_MOUNTAIN_LION, OSX_MAVERICKS
+    } else { // OSX_LION_AND_HIGHER, OSX_MOUNTAIN_LION_AND_HIGHER, OSX_MAVERICKS_AND_HIGHER
         o_name = @"lion-";
     }
 
@@ -151,7 +151,7 @@
     _greenOnClickImage = [self getButtonImage:@"window-zoom-on"];
 
     // these files are only available in the yosemite variant
-    if (OSX_YOSEMITE || OSX_EL_CAPITAN) {
+    if (OSX_YOSEMITE_AND_HIGHER) {
         _fullscreenImage = [self getButtonImage:@"window-fullscreen"];
         _fullscreenHoverImage = [self getButtonImage:@"window-fullscreen-over"];
         _fullscreenOnClickImage = [self getButtonImage:@"window-fullscreen-on"];
@@ -186,7 +186,7 @@
 {
     // default image for old version, or if native fullscreen is
     // disabled on yosemite, or if alt key is pressed
-    if (!(OSX_YOSEMITE || OSX_EL_CAPITAN) || !b_nativeFullscreenMode || b_alt_pressed) {
+    if (!OSX_YOSEMITE_AND_HIGHER || !b_nativeFullscreenMode || b_alt_pressed) {
 
         if (b_mouse_over) {
             [_greenButton setImage: _greenHoverImage];
@@ -219,7 +219,7 @@
     else if (sender == _yellowButton)
         [[self window] miniaturize: sender];
     else if (sender == _greenButton) {
-        if ((OSX_YOSEMITE || OSX_EL_CAPITAN) && b_nativeFullscreenMode && !b_alt_pressed) {
+        if (OSX_YOSEMITE_AND_HIGHER && b_nativeFullscreenMode && !b_alt_pressed) {
             [[self window] toggleFullScreen:self];
         } else {
             [[self window] performZoom: sender];
diff --git a/modules/gui/macosx/VLCStatusBarIcon.m b/modules/gui/macosx/VLCStatusBarIcon.m
index 09f34740c0..b5aca4db59 100644
--- a/modules/gui/macosx/VLCStatusBarIcon.m
+++ b/modules/gui/macosx/VLCStatusBarIcon.m
@@ -175,7 +175,7 @@
         // Visibility is 10.12+
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wpartial-availability"
-        if (OSX_SIERRA) {
+        if (OSX_SIERRA_AND_HIGHER) {
             [self.statusItem setBehavior:NSStatusItemBehaviorRemovalAllowed];
             [self.statusItem setAutosaveName:@"statusBarItem"];
             [self.statusItem addObserver:self forKeyPath:NSStringFromSelector(@selector(isVisible))
@@ -183,7 +183,7 @@
         }
     }
 
-    if (OSX_SIERRA) {
+    if (OSX_SIERRA_AND_HIGHER) {
         // Sync VLC setting with status bar visibility setting (10.12 runtime only)
         [self.statusItem setVisible:YES];
     }
@@ -195,7 +195,7 @@
         return;
 
     // Lets keep alive the object in Sierra, and destroy it in older OS versions
-    if (OSX_SIERRA) {
+    if (OSX_SIERRA_AND_HIGHER) {
         self.statusItem.visible = NO;
     } else {
         [[NSStatusBar systemStatusBar] removeStatusItem:self.statusItem];
diff --git a/modules/gui/macosx/VLCStringUtility.m b/modules/gui/macosx/VLCStringUtility.m
index 561b2e60a2..16b80ebb10 100644
--- a/modules/gui/macosx/VLCStringUtility.m
+++ b/modules/gui/macosx/VLCStringUtility.m
@@ -533,7 +533,7 @@ NSString *toNSStr(const char *str) {
 NSImage *imageFromRes(NSString *o_id)
 {
     NSString *result = @"";
-    if (OSX_YOSEMITE || OSX_EL_CAPITAN || OSX_SIERRA) {
+    if (OSX_YOSEMITE_AND_HIGHER) {
         result = [result stringByAppendingString:@"ys-"];
     }
 
diff --git a/modules/gui/macosx/Windows.m b/modules/gui/macosx/Windows.m
index e9b36bcbe9..98da2ba8e7 100644
--- a/modules/gui/macosx/Windows.m
+++ b/modules/gui/macosx/Windows.m
@@ -182,7 +182,7 @@
 
     BOOL b_inFullscreen = [self fullscreen] || ([self respondsToSelector:@selector(inFullscreenTransition)] && [(VLCVideoWindowCommon *)self inFullscreenTransition]);
 
-    if((OSX_MAVERICKS) && b_inFullscreen && constrainedRect.size.width == screenRect.size.width
+    if((OSX_MAVERICKS_AND_HIGHER && !OSX_YOSEMITE_AND_HIGHER) && b_inFullscreen && constrainedRect.size.width == screenRect.size.width
           && constrainedRect.size.height != screenRect.size.height
           && fabs(screenRect.size.height - constrainedRect.size.height) <= 25.) {
 
@@ -258,7 +258,7 @@
 
     if (b_nativeFullscreenMode) {
         [self setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];
-    } else if (OSX_EL_CAPITAN || OSX_SIERRA) {
+    } else if (OSX_EL_CAPITAN_AND_HIGHER) {
         // Native fullscreen seems to be default on El Capitan, this disables it explicitely
         [self setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
     }



More information about the vlc-commits mailing list