diff options
author | Brian Cameron <brian.cameron@sun.com> | 2005-08-20 18:39:33 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2005-08-20 18:39:33 +0000 |
commit | b861079369fb0f61e58eda7f67441659a3db41e3 (patch) | |
tree | 37c33e1cf1506cf1486b6fe11b491baef6749c41 | |
parent | e0ea01b3ad1170d4ae053dd0fcf0fa0fb2d959b3 (diff) | |
download | gdm-b861079369fb0f61e58eda7f67441659a3db41e3.tar.gz |
Honor Default Session gdm.conf setting when using autologin. Fixes bug
2005-08-20 Brian Cameron <brian.cameron@sun.com>
* daemon/gdm.c, daemon/slave.c: Honor Default Session
gdm.conf setting when using autologin. Fixes bug
#313996. Patch by HansPetter Jansson <hpj@novell.com>
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | daemon/gdm.c | 3 | ||||
-rw-r--r-- | daemon/slave.c | 7 |
3 files changed, 15 insertions, 1 deletions
@@ -1,3 +1,9 @@ +2005-08-20 Brian Cameron <brian.cameron@sun.com> + + * daemon/gdm.c, daemon/slave.c: Honor Default Session + gdm.conf setting when using autologin. Fixes bug + #313996. Patch by HansPetter Jansson <hpj@novell.com> + 2005-08-18 Brian Cameron <brian.cameron@sun.com> * gui/gdmflexiserver.c: Fix reading of configuration diff --git a/daemon/gdm.c b/daemon/gdm.c index dece5c39..d206cd31 100644 --- a/daemon/gdm.c +++ b/daemon/gdm.c @@ -149,6 +149,7 @@ gchar *GdmGtkRC = NULL; gchar *GdmGtkTheme = NULL; gchar *GdmSessDir = NULL; gchar *GdmXsession = NULL; +gchar *GdmDefaultSession = NULL; gchar *GdmAutomaticLogin = NULL; gboolean GdmAutomaticLoginEnable = FALSE; gboolean GdmAlwaysRestartServer = FALSE; @@ -463,6 +464,7 @@ gdm_config_parse (void) GdmXsession = g_build_filename (EXPANDED_SYSCONFDIR, "gdm", "Xsession", NULL); } + GdmDefaultSession = ve_config_get_string (cfg, GDM_KEY_DEFAULTSESSION); GdmSuspend = ve_config_get_string (cfg, GDM_KEY_SUSPEND); GdmUser = ve_config_get_string (cfg, GDM_KEY_USER); GdmUserAuthDir = ve_config_get_string (cfg, GDM_KEY_UAUTHDIR); @@ -4262,6 +4264,7 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data) !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_UAUTHFILE, GdmUserAuthFile)) && !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_UAUTHFB, GdmUserAuthFB)) && !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_SESSDIR, GdmSessDir)) && + !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_DEFAULTSESSION, GdmDefaultSession)) && #ifdef ENABLE_IPV6 !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_MULTICAST_ADDR, GdmMulticastAddr)) && #endif diff --git a/daemon/slave.c b/daemon/slave.c index d8b9d012..f2d522ed 100644 --- a/daemon/slave.c +++ b/daemon/slave.c @@ -3421,7 +3421,12 @@ find_a_session (void) int i; char *session; - session = NULL; + if (!ve_string_empty (GdmDefaultSession) && + is_session_ok (GdmDefaultSession)) + session = g_strdup (GdmDefaultSession); + else + session = NULL; + for (i = 0; try[i] != NULL && session == NULL; i ++) { if (is_session_ok (try[i])) session = g_strdup (try[i]); |