Browse Source

Only use newer unsafe dark mode detection inf Auto mode is selected.

pull/188/head
weisj 5 years ago
parent
commit
7574dd2ecf
  1. 9
      macos/src/main/objcpp/ThemeInfo.mm

9
macos/src/main/objcpp/ThemeInfo.mm

@ -30,6 +30,7 @@
#define NSRequiresAquaSystemAppearance CFSTR("NSRequiresAquaSystemAppearance")
#define KEY_APPLE_INTERFACE_STYLE @"AppleInterfaceStyle"
#define KEY_SWITCHES_AUTOMATICALLY @"AppleInterfaceStyleSwitchesAutomatically"
#define KEY_ACCENT_COLOR @"AppleAccentColor"
#define KEY_SELECTION_COLOR @"selectedTextBackgroundColor"
#define KEY_SYSTEM_COLOR_LIST @"System"
@ -127,8 +128,14 @@ BOOL isDarkModeMojave() {
JNIEXPORT jboolean JNICALL
Java_com_github_weisj_darklaf_platform_macos_JNIThemeInfoMacOS_isDarkThemeEnabled(JNIEnv *env, jclass obj) {
JNF_COCOA_ENTER(env);
BOOL isAutoMode = [[NSUserDefaults standardUserDefaults] boolForKey:KEY_SWITCHES_AUTOMATICALLY];
if(@available(macOS 10.15, *)) {
if (catalinaEnabled) {
if (catalinaEnabled && isAutoMode) {
/*
* The newer method is more unsafe with regards to the JDK version nad the apps info.plist
* We only use it if necessary i.e. 'Auto' mode is selected and the app bundle is correctly patched.
* i.e. a specific value has been set in the app bundle or we have patched it manually (only jdk <=11).
*/
return (jboolean) isDarkModeCatalina();
}
}

Loading…
Cancel
Save