aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jcmarsha@gmail.com>2014-06-13 09:03:07 +1200
committerjmarshallnz <jcmarsha@gmail.com>2014-06-13 09:03:07 +1200
commit65746489a78e4769b6731f6003a31d382cfc96f6 (patch)
tree5cf93ceeefbb9ce4fa40e0c90a7c4857f0df3278
parent0f42b7a16b6b09772c365c41f99d0d92b8a8e27d (diff)
parent6f6bdd1b03bd0faa718665199031d737a880495b (diff)
Merge pull request #4894 from Memphiz/osxfakefullscreen
[osx] - only show the fake fullscreen option on snow leopard
-rw-r--r--system/settings/darwin_osx.xml7
-rw-r--r--xbmc/osx/DarwinUtils.h1
-rw-r--r--xbmc/osx/DarwinUtils.mm21
-rw-r--r--xbmc/settings/SettingConditions.cpp7
4 files changed, 36 insertions, 0 deletions
diff --git a/system/settings/darwin_osx.xml b/system/settings/darwin_osx.xml
index 9a5538ba44..7ababf94b4 100644
--- a/system/settings/darwin_osx.xml
+++ b/system/settings/darwin_osx.xml
@@ -8,6 +8,13 @@
</setting>
</group>
</category>
+ <category id="videoscreen" label="21373" help="36603">
+ <group id="1">
+ <setting id="videoscreen.fakefullscreen" type="boolean" parent="videoscreen.screen" label="14083" help="36354">
+ <requirement>OsxIsSnowLeopard</requirement>
+ </setting>
+ </group>
+ </category>
</section>
</settings>
diff --git a/xbmc/osx/DarwinUtils.h b/xbmc/osx/DarwinUtils.h
index a6d2709649..292a9f18a9 100644
--- a/xbmc/osx/DarwinUtils.h
+++ b/xbmc/osx/DarwinUtils.h
@@ -34,6 +34,7 @@ extern "C"
const char *getIosPlatformString(void);
bool DarwinIsAppleTV2(void);
bool DarwinIsMavericks(void);
+ bool DarwinIsSnowLeopard(void);
bool DarwinHasRetina(void);
const char *GetDarwinOSReleaseString(void);
const char *GetDarwinVersionString(void);
diff --git a/xbmc/osx/DarwinUtils.mm b/xbmc/osx/DarwinUtils.mm
index a59044bbbd..0cd63cec95 100644
--- a/xbmc/osx/DarwinUtils.mm
+++ b/xbmc/osx/DarwinUtils.mm
@@ -43,6 +43,14 @@
#import "AutoPool.h"
#import "DarwinUtils.h"
+#ifndef NSAppKitVersionNumber10_5
+#define NSAppKitVersionNumber10_5 949
+#endif
+
+#ifndef NSAppKitVersionNumber10_6
+#define NSAppKitVersionNumber10_6 1038
+#endif
+
enum iosPlatform
{
iDeviceUnknown = -1,
@@ -189,6 +197,19 @@ bool DarwinIsMavericks(void)
return isMavericks == 1;
}
+bool DarwinIsSnowLeopard(void)
+{
+ static int isSnowLeopard = -1;
+#if defined(TARGET_DARWIN_OSX)
+ if (isSnowLeopard == -1)
+ {
+ double appKitVersion = floor(NSAppKitVersionNumber);
+ isSnowLeopard = (appKitVersion <= NSAppKitVersionNumber10_6 && appKitVersion > NSAppKitVersionNumber10_5) ? 1 : 0;
+ }
+#endif
+ return isSnowLeopard == 1;
+}
+
bool DarwinHasRetina(void)
{
static enum iosPlatform platform = iDeviceUnknown;
diff --git a/xbmc/settings/SettingConditions.cpp b/xbmc/settings/SettingConditions.cpp
index 9a9915d8d6..db1526ab44 100644
--- a/xbmc/settings/SettingConditions.cpp
+++ b/xbmc/settings/SettingConditions.cpp
@@ -43,6 +43,9 @@
#endif // defined(HAS_LIBAMCODEC)
#include "utils/SystemInfo.h"
#include "windowing/WindowingFactory.h"
+#if defined(TARGET_DARWIN_OSX)
+#include "osx/DarwinUtils.h"
+#endif// defined(TARGET_DARWIN_OSX)
bool AddonHasSettings(const std::string &condition, const std::string &value, const CSetting *setting)
{
@@ -261,6 +264,10 @@ void CSettingConditions::Initialize()
if (g_sysinfo.IsAppleTV2())
m_simpleConditions.insert("isappletv2");
#endif
+#ifdef TARGET_DARWIN_OSX
+ if (DarwinIsSnowLeopard())
+ m_simpleConditions.insert("osxissnowleopard");
+#endif
#if defined(TARGET_WINDOWS) && defined(HAS_DX)
m_simpleConditions.insert("has_dx");
m_simpleConditions.insert("hasdxva2");