diff options
author | Sebastian Keller <skeller@gnome.org> | 2020-12-16 18:37:08 +0100 |
---|---|---|
committer | Sebastian Keller <skeller@gnome.org> | 2020-12-16 20:49:39 +0100 |
commit | 6c5489ab25554864d3d2e3a6792b238ef6b00637 (patch) | |
tree | d6b82049da7498a96d4310eae08a73e6048d39c8 | |
parent | b933d576322b716ede78a89b97189c4198437286 (diff) | |
download | gtk+-6c5489ab25554864d3d2e3a6792b238ef6b00637.tar.gz |
settings: Support loading float values from keyfiles
The gtk-cursor-aspect-ratio property got added as a float property.
However there is no parser for float values from keyfiles which meant
that it could not be changed from settings.ini.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3441
-rw-r--r-- | gtk/gtksettings.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 2e7c035705..22b1420472 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -2448,6 +2448,7 @@ gtk_settings_set_property_value_internal (GtkSettings *settings, GQuark name_quark; if (!G_VALUE_HOLDS_LONG (&new_value->value) && + !G_VALUE_HOLDS_FLOAT (&new_value->value) && !G_VALUE_HOLDS_DOUBLE (&new_value->value) && !G_VALUE_HOLDS_STRING (&new_value->value) && !G_VALUE_HOLDS (&new_value->value, G_TYPE_GSTRING)) @@ -3443,14 +3444,20 @@ gtk_settings_load_from_key_file (GtkSettings *settings, break; } + case G_TYPE_FLOAT: case G_TYPE_DOUBLE: { gdouble d_val; - g_value_init (&svalue.value, G_TYPE_DOUBLE); + g_value_init (&svalue.value, value_type); d_val = g_key_file_get_double (keyfile, "Settings", key, &error); if (!error) - g_value_set_double (&svalue.value, d_val); + { + if (value_type == G_TYPE_FLOAT) + g_value_set_float (&svalue.value, (float) d_val); + else + g_value_set_double (&svalue.value, d_val); + } break; } |