summaryrefslogtreecommitdiff
path: root/daemon/gdm-session.c
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-01-23 13:59:14 -0500
committerRay Strode <rstrode@redhat.com>2015-02-18 17:34:15 -0500
commit05ac2161a73ad3ccf2dc513ab2d7b83253f840c2 (patch)
treed4b8c5a823fde1606784405f2341024c2a662f7a /daemon/gdm-session.c
parent2ba0912414735ed38093d109b426b93bee88e99e (diff)
downloadgdm-05ac2161a73ad3ccf2dc513ab2d7b83253f840c2.tar.gz
session: start login screen using session wrappers
Since we have the wrappers, let's use them for the login screen, too, when we can. This commit removes GdmServer from GdmLocalDisplay, since starting the X server should be handled implicitly by gdm-x-session, now. All the old logic is now in a new GdmLegacyDisplay object, that will remain for cases where gdm-x-session doesn't work. (ConsoleKit systems, non-seat0 displays, etc) https://bugzilla.gnome.org/show_bug.cgi?id=744764
Diffstat (limited to 'daemon/gdm-session.c')
-rw-r--r--daemon/gdm-session.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 0edfaa14..4cd1e17f 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -2610,7 +2610,17 @@ gdm_session_start_session (GdmSession *self,
g_free (command);
} else {
- program = g_strdup (self->priv->selected_program);
+ if (run_launcher) {
+ if (is_x11) {
+ program = g_strdup_printf (LIBEXECDIR "/gdm-x-session \"%s\"",
+ self->priv->selected_program);
+ } else {
+ program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session \"%s\"",
+ self->priv->selected_program);
+ }
+ } else {
+ program = g_strdup (self->priv->selected_program);
+ }
}
set_up_session_environment (self);
@@ -2902,12 +2912,11 @@ gdm_session_get_display_mode (GdmSession *self)
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
}
- /* The X session used for the login screen uses the
- * X server started up by the slave, so it should be
- * reuse VT
+ /* The X session used for the login screen now is run
+ * within the login session and managed by logind
*/
if (self->priv->is_program_session) {
- return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
+ return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED;
}
/* user based X sessions start on a new VT now and are managed