diff --git a/panels/keyboard/cc-keyboard-item.c b/panels/keyboard/cc-keyboard-item.c index 2f7cdf75393f391bd7da4cac1df80931a5180ddb..86aba4db738941dc70ca2098b3ff6c5240d87b15 100644 --- a/panels/keyboard/cc-keyboard-item.c +++ b/panels/keyboard/cc-keyboard-item.c @@ -557,16 +557,22 @@ cc_keyboard_item_load_from_gsettings (CcKeyboardItem *item, const char *schema, const char *key) { + GSettingsSchema *settings_schema = NULL; + g_autoptr(GSettingsSchemaKey) schema_key = NULL; g_autofree char *signal_name = NULL; g_autoptr(GVariant) variant = NULL; item->schema = g_strdup (schema); item->key = g_strdup (key); - item->description = g_strdup (description); item->settings = g_settings_new (item->schema); item->editable = g_settings_is_writable (item->settings, item->key); + // XXX ignoring argument + g_object_get (item->settings, "settings-schema", &settings_schema, NULL); + schema_key = g_settings_schema_get_key (settings_schema, key); + item->description = g_strdup (g_settings_schema_key_get_summary (schema_key)); + g_list_free_full (item->key_combos, g_free); item->key_combos = settings_get_key_combos (item->settings, item->key, FALSE);