You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
night-mode: check for GTK_THEME env var and prefer-dark setting
GTK_THEME env var does not influence gtk-theme-name property. So it has to be checked by hand.
This commit is contained in:
@@ -11,10 +11,18 @@
|
|||||||
JNIEXPORT void JNICALL Java_android_content_Context_native_1updateConfig(JNIEnv *env, jclass class, jobject config)
|
JNIEXPORT void JNICALL Java_android_content_Context_native_1updateConfig(JNIEnv *env, jclass class, jobject config)
|
||||||
{
|
{
|
||||||
GtkSettings *settings = gtk_settings_get_default();
|
GtkSettings *settings = gtk_settings_get_default();
|
||||||
gchar *theme_name;
|
char *theme_name;
|
||||||
g_object_get(settings, "gtk-theme-name", &theme_name, NULL);
|
gboolean prefer_dark = false;
|
||||||
bool night_mode = strcasestr(theme_name, "dark") || strcasestr(theme_name, "black");
|
gboolean theme_name_from_env = false;
|
||||||
|
|
||||||
|
theme_name = getenv("GTK_THEME");
|
||||||
|
theme_name_from_env = theme_name != NULL;
|
||||||
|
if (!theme_name_from_env)
|
||||||
|
g_object_get(settings, "gtk-theme-name", &theme_name, "gtk-application-prefer-dark-theme", &prefer_dark, NULL);
|
||||||
|
bool night_mode = prefer_dark || strcasestr(theme_name, "dark") || strcasestr(theme_name, "black");
|
||||||
if (night_mode) {
|
if (night_mode) {
|
||||||
_SET_INT_FIELD(config, "uiMode", /*UI_MODE_NIGHT_YES*/ 0x20);
|
_SET_INT_FIELD(config, "uiMode", /*UI_MODE_NIGHT_YES*/ 0x20);
|
||||||
}
|
}
|
||||||
|
if (!theme_name_from_env)
|
||||||
|
g_free(theme_name);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user