diff options
-rw-r--r-- | mate-session/gsm-manager.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c index 37ca39d..0ca852f 100644 --- a/mate-session/gsm-manager.c +++ b/mate-session/gsm-manager.c @@ -2838,9 +2838,7 @@ on_presence_status_changed (GsmPresence *presence, static void gsm_manager_init (GsmManager *manager) { - gchar **schemas = NULL; - gboolean schema_exists; - guint i; + GSettingsSchema *schema; GsmManagerPrivate *priv; priv = gsm_manager_get_instance_private (manager); @@ -2849,21 +2847,15 @@ gsm_manager_init (GsmManager *manager) priv->settings_lockdown = g_settings_new (LOCKDOWN_SCHEMA); /* check if mate-screensaver is installed */ - 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; - } - } - - g_strfreev (schemas); + schema = g_settings_schema_source_lookup (g_settings_schema_source_get_default (), + SCREENSAVER_SCHEMA, FALSE); - if (schema_exists == TRUE) - priv->settings_screensaver = g_settings_new (SCREENSAVER_SCHEMA); - else + if (schema != NULL) { + priv->settings_screensaver = g_settings_new_full (schema, NULL, NULL); + g_settings_schema_unref (schema); + } else { priv->settings_screensaver = NULL; + } priv->inhibitors = gsm_store_new (); g_signal_connect (priv->inhibitors, |