diff options
Diffstat (limited to 'common/gdm-settings.c')
-rw-r--r-- | common/gdm-settings.c | 14 |
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; |