From 3337cb990ddebb7760a3aa0804049a7cfeb7581a Mon Sep 17 00:00:00 2001 From: zhuyaliang <15132211195@163.com> Date: Mon, 4 Sep 2023 10:22:43 +0800 Subject: Revert "gsm-manager: use g_settings_schema_source_lookup ()" This reverts commit 92c9a82105b222a934e994a87738673351ad33ee. Fix https://github.com/mate-desktop/mate-session-manager/issues/308 --- mate-session/gsm-manager.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c index 0ca852f..37ca39d 100644 --- a/mate-session/gsm-manager.c +++ b/mate-session/gsm-manager.c @@ -2838,7 +2838,9 @@ on_presence_status_changed (GsmPresence *presence, static void gsm_manager_init (GsmManager *manager) { - GSettingsSchema *schema; + gchar **schemas = NULL; + gboolean schema_exists; + guint i; GsmManagerPrivate *priv; priv = gsm_manager_get_instance_private (manager); @@ -2847,15 +2849,21 @@ gsm_manager_init (GsmManager *manager) priv->settings_lockdown = g_settings_new (LOCKDOWN_SCHEMA); /* check if mate-screensaver is installed */ - schema = g_settings_schema_source_lookup (g_settings_schema_source_get_default (), - SCREENSAVER_SCHEMA, FALSE); + g_settings_schema_source_list_schemas (g_settings_schema_source_get_default (), TRUE, &schemas, NULL); + schema_exists = FALSE; + for (i = 0; schemas[i] != NULL; i++) { + if (g_str_equal (schemas[i], SCREENSAVER_SCHEMA)) { + schema_exists = TRUE; + break; + } + } - if (schema != NULL) { - priv->settings_screensaver = g_settings_new_full (schema, NULL, NULL); - g_settings_schema_unref (schema); - } else { + g_strfreev (schemas); + + if (schema_exists == TRUE) + priv->settings_screensaver = g_settings_new (SCREENSAVER_SCHEMA); + else priv->settings_screensaver = NULL; - } priv->inhibitors = gsm_store_new (); g_signal_connect (priv->inhibitors, -- cgit v1.2.1