summaryrefslogtreecommitdiff
path: root/mate-session
diff options
context:
space:
mode:
Diffstat (limited to 'mate-session')
-rw-r--r--mate-session/gsm-manager.c24
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,