mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
Read org.gnome.desktop.interface/scaling-factor
(cherry picked from commit 277357ae73)
This commit is contained in:
committed by
alexey.ushakov@jetbrains.com
parent
07ef5162c4
commit
8a9db7677c
@@ -45,6 +45,7 @@ typedef void* g_variant_get_child_value(void *, unsigned long);
|
||||
typedef void g_variant_unref(void *);
|
||||
typedef char* g_variant_get_string(void *, unsigned long *);
|
||||
typedef int g_variant_get_int32(void *);
|
||||
typedef unsigned g_variant_get_uint32(void *);
|
||||
typedef double g_variant_get_double(void *);
|
||||
|
||||
static g_settings_schema_has_key* fp_g_settings_schema_has_key;
|
||||
@@ -55,6 +56,7 @@ static g_variant_n_children* fp_g_variant_n_children;
|
||||
static g_variant_get_child_value* fp_g_variant_get_child_value;
|
||||
static g_variant_get_string* fp_g_variant_get_string;
|
||||
static g_variant_get_int32* fp_g_variant_get_int32;
|
||||
static g_variant_get_uint32* fp_g_variant_get_uint32;
|
||||
static g_variant_get_double* fp_g_variant_get_double;
|
||||
static g_variant_unref* fp_g_variant_unref;
|
||||
|
||||
@@ -96,6 +98,9 @@ static void* get_schema_value(char *name, char *key) {
|
||||
CHECK_NULL_RETURN(fp_g_variant_get_int32 =
|
||||
(g_variant_get_int32*)
|
||||
dlsym(lib_handle, "g_variant_get_int32"), NULL);
|
||||
CHECK_NULL_RETURN(fp_g_variant_get_uint32 =
|
||||
(g_variant_get_uint32*)
|
||||
dlsym(lib_handle, "g_variant_get_uint32"), NULL);
|
||||
CHECK_NULL_RETURN(fp_g_variant_get_double =
|
||||
(g_variant_get_double*)
|
||||
dlsym(lib_handle, "g_variant_get_double"), NULL);
|
||||
@@ -175,6 +180,15 @@ static double getDesktopScale(char *output_name) {
|
||||
}
|
||||
}
|
||||
|
||||
if (result <= 0) {
|
||||
void *value = get_schema_value("org.gnome.desktop.interface",
|
||||
"scaling-factor");
|
||||
if (value && fp_g_variant_is_of_type(value, "u")) {
|
||||
result = fp_g_variant_get_uint32(value);
|
||||
fp_g_variant_unref(value);
|
||||
}
|
||||
}
|
||||
|
||||
if (result <= 0) {
|
||||
void *value = get_schema_value("org.gnome.desktop.interface",
|
||||
"text-scaling-factor");
|
||||
|
||||
Reference in New Issue
Block a user