diff --git a/skiko/src/awtMain/cpp/linux/theme.cc b/skiko/src/awtMain/cpp/linux/theme.cc index 500977142..a2c96e38f 100644 --- a/skiko/src/awtMain/cpp/linux/theme.cc +++ b/skiko/src/awtMain/cpp/linux/theme.cc @@ -209,7 +209,7 @@ extern "C" return true; } - JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemTheme_1awtKt_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) + JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemThemeHelper_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) { int systemTheme = 0; diff --git a/skiko/src/awtMain/cpp/windows/drawlayer.cc b/skiko/src/awtMain/cpp/windows/drawlayer.cc index 212012260..010137be1 100644 --- a/skiko/src/awtMain/cpp/windows/drawlayer.cc +++ b/skiko/src/awtMain/cpp/windows/drawlayer.cc @@ -29,7 +29,7 @@ extern "C" return (jlong) dsi_win->hwnd; } - JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemTheme_1awtKt_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) + JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemThemeHelper_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) { auto subkey = L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; auto name = L"AppsUseLightTheme"; diff --git a/skiko/src/awtMain/kotlin/org/jetbrains/skiko/SystemTheme.awt.kt b/skiko/src/awtMain/kotlin/org/jetbrains/skiko/SystemTheme.awt.kt index 174f2679f..882c6ab2e 100644 --- a/skiko/src/awtMain/kotlin/org/jetbrains/skiko/SystemTheme.awt.kt +++ b/skiko/src/awtMain/kotlin/org/jetbrains/skiko/SystemTheme.awt.kt @@ -1,14 +1,16 @@ package org.jetbrains.skiko actual val currentSystemTheme: SystemTheme - get() { + get() = when (SystemThemeHelper.getCurrentSystemTheme()) { + 0 -> SystemTheme.LIGHT + 1 -> SystemTheme.DARK + else -> SystemTheme.UNKNOWN + } + +private object SystemThemeHelper { + init { Library.load() - return when (getCurrentSystemTheme()) { - 0 -> SystemTheme.LIGHT - 1 -> SystemTheme.DARK - else -> SystemTheme.UNKNOWN - } } -// Common -private external fun getCurrentSystemTheme(): Int + external fun getCurrentSystemTheme(): Int +} diff --git a/skiko/src/awtMain/objectiveC/macos/Drawlayer.mm b/skiko/src/awtMain/objectiveC/macos/Drawlayer.mm index 546bd5156..bc86cd35b 100644 --- a/skiko/src/awtMain/objectiveC/macos/Drawlayer.mm +++ b/skiko/src/awtMain/objectiveC/macos/Drawlayer.mm @@ -385,7 +385,7 @@ JNIEXPORT void JNICALL Java_org_jetbrains_skiko_PlatformOperationsKt_osxDisableT } } -JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemTheme_1awtKt_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) +JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemThemeHelper_getCurrentSystemTheme(JNIEnv *env, jobject topLevel) { @autoreleasepool { NSString *osxMode = [[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"];