diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/gdm-settings-direct.c | 9 | ||||
-rw-r--r-- | common/gdm-settings-direct.h | 2 | ||||
-rw-r--r-- | common/gdm-settings.c | 14 | ||||
-rw-r--r-- | common/gdm-settings.h | 1 |
4 files changed, 24 insertions, 2 deletions
diff --git a/common/gdm-settings-direct.c b/common/gdm-settings-direct.c index ddb31908..5fbe0326 100644 --- a/common/gdm-settings-direct.c +++ b/common/gdm-settings-direct.c @@ -252,6 +252,15 @@ gdm_settings_direct_init (GdmSettings *settings, } void +gdm_settings_direct_reload (void) +{ + if (!settings_object) + return; + + gdm_settings_reload (settings_object); +} + +void gdm_settings_direct_shutdown (void) { diff --git a/common/gdm-settings-direct.h b/common/gdm-settings-direct.h index 156489cd..6754955f 100644 --- a/common/gdm-settings-direct.h +++ b/common/gdm-settings-direct.h @@ -30,6 +30,8 @@ G_BEGIN_DECLS gboolean gdm_settings_direct_init (GdmSettings *settings, const char *schemas_file, const char *root); + +void gdm_settings_direct_reload (void); void gdm_settings_direct_shutdown (void); gboolean gdm_settings_direct_get (const char *key, 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; diff --git a/common/gdm-settings.h b/common/gdm-settings.h index 786868a9..07b64785 100644 --- a/common/gdm-settings.h +++ b/common/gdm-settings.h @@ -40,6 +40,7 @@ typedef enum GQuark gdm_settings_error_quark (void); GdmSettings * gdm_settings_new (void); +void gdm_settings_reload (GdmSettings *settings); /* exported */ |