gsettings-tool: Always use the global_schema_source to lookup schemas in list-recursively

When listing schemas from a specified directory, explicitly
create the GSettings object from the schema, don't allow g_settings_new
to do the usual lookup. That lookup fails if no other schemas are
installed in the default directories.

Fixes #3429.
This commit is contained in:
Lukáš Tyrychtr 2024-08-14 16:14:45 +00:00 committed by Philip Withnall
parent 2a4f7b8421
commit 018581adb5

View File

@ -324,10 +324,15 @@ gsettings_list_recursively (void)
for (i = 0; schemas[i]; i++)
{
GSettings *settings;
GSettingsSchema *schema;
settings = g_settings_new (schemas[i]);
schema = g_settings_schema_source_lookup (global_schema_source, schemas[i], FALSE);
if (!schema)
continue;
settings = g_settings_new_full (schema, NULL, NULL);
list_recursively (settings);
g_object_unref (settings);
g_settings_schema_unref (schema);
}
g_strfreev (schemas);