summaryrefslogtreecommitdiff
path: root/common/gdm-settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/gdm-settings.c')
-rw-r--r--common/gdm-settings.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/common/gdm-settings.c b/common/gdm-settings.c
index e6f46ec3..96c2f8d3 100644
--- a/common/gdm-settings.c
+++ b/common/gdm-settings.c
@@ -184,12 +184,16 @@ backend_value_changed (GdmSettingsBackend *backend,
g_signal_emit (settings, signals [VALUE_CHANGED], 0, key, old_value, new_value);
}
-static void
-gdm_settings_init (GdmSettings *settings)
+void
+gdm_settings_reload (GdmSettings *settings)
{
GList *l;
GdmSettingsBackend *backend;
+ g_list_foreach (settings->backends, (GFunc) g_object_unref, NULL);
+ g_list_free (settings->backends);
+ settings->backends = NULL;
+
backend = gdm_settings_desktop_backend_new (GDM_CUSTOM_CONF);
if (backend)
settings->backends = g_list_prepend (NULL, backend);
@@ -209,6 +213,12 @@ gdm_settings_init (GdmSettings *settings)
}
static void
+gdm_settings_init (GdmSettings *settings)
+{
+ gdm_settings_reload (settings);
+}
+
+static void
gdm_settings_finalize (GObject *object)
{
GdmSettings *settings;