diff options
-rw-r--r-- | src/core/prefs.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/core/prefs.c b/src/core/prefs.c index 74cf0ca7..81ce07b9 100644 --- a/src/core/prefs.c +++ b/src/core/prefs.c @@ -1683,10 +1683,14 @@ static MetaKeyPref key_bindings[] = { static void init_bindings (GSettings *settings) { + GSettingsSchema *schema; gchar **list = NULL; gchar *str_val = NULL; - list = g_settings_list_keys (settings); + g_object_get (settings, "settings-schema", &schema, NULL); + list = g_settings_schema_list_keys (schema); + g_settings_schema_unref (schema); + while (*list != NULL) { str_val = g_settings_get_string (settings, *list); @@ -1712,10 +1716,14 @@ init_window_bindings (void) static void init_commands (void) { + GSettingsSchema *schema; gchar **list = NULL; gchar *str_val = NULL; - list = g_settings_list_keys (settings_command); + g_object_get (settings_command, "settings-schema", &schema, NULL); + list = g_settings_schema_list_keys (schema); + g_settings_schema_unref (schema); + while (*list != NULL) { str_val = g_settings_get_string (settings_command, *list); @@ -1729,10 +1737,14 @@ init_commands (void) static void init_workspace_names (void) { + GSettingsSchema *schema; gchar **list = NULL; gchar *str_val = NULL; - list = g_settings_list_keys (settings_workspace_names); + g_object_get (settings_workspace_names, "settings-schema", &schema, NULL); + list = g_settings_schema_list_keys (schema); + g_settings_schema_unref (schema); + while (*list != NULL) { str_val = g_settings_get_string (settings_workspace_names, *list); |