summaryrefslogtreecommitdiff
path: root/daemon/gdm.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm.c')
-rw-r--r--daemon/gdm.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/daemon/gdm.c b/daemon/gdm.c
index 0b81da97..e579216d 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -2255,6 +2255,45 @@ update_config (const char *key)
notify_displays_string (GDM_NOTIFY_REMOTEGREETER, val);
goto update_config_ok;
+ } else if (is_key (key, GDM_KEY_TIMED_LOGIN) ||
+ is_key (key, GDM_KEY_TIMED_LOGIN_ENABLE)) {
+ gboolean enable = gnome_config_get_bool (GDM_KEY_TIMED_LOGIN_ENABLE);
+ char *val;
+
+ /* if not enabled, we just don't care */
+ if ( ! enable && ! GdmTimedLoginEnable)
+ goto update_config_ok;
+
+ val = gnome_config_get_string (GDM_KEY_TIMED_LOGIN);
+ if (strcmp (ve_sure_string (val),
+ ve_sure_string (GdmTimedLogin)) == 0 &&
+ ve_bool_equal (enable, GdmTimedLoginEnable)) {
+ g_free (val);
+ goto update_config_ok;
+ }
+
+ GdmTimedLoginEnable = enable;
+ g_free (GdmTimedLogin);
+ if (GdmTimedLoginEnable) {
+ GdmTimedLogin = val;
+ } else {
+ g_free (val);
+ GdmTimedLogin = NULL;
+ }
+
+ notify_displays_string (GDM_NOTIFY_TIMED_LOGIN,
+ ve_sure_string (GdmTimedLogin));
+
+ goto update_config_ok;
+ } else if (is_key (key, GDM_KEY_TIMED_LOGIN_DELAY)) {
+ int val = gnome_config_get_int (GDM_KEY_TIMED_LOGIN_DELAY);
+ if (val == GdmTimedLoginDelay)
+ goto update_config_ok;
+ GdmTimedLoginDelay = val;
+
+ notify_displays_int (GDM_NOTIFY_TIMED_LOGIN_DELAY, val);
+
+ goto update_config_ok;
} else if (is_key (key, GDM_KEY_XDMCP)) {
gboolean val = gnome_config_get_bool (GDM_KEY_XDMCP);
if (ve_bool_equal (val, GdmXdmcp))