summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-02-27 07:49:17 -0500
committerRay Strode <rstrode@redhat.com>2015-02-27 10:31:42 -0500
commit5dcbc5ac1e8877787587d916a0bbcc6c4136a7c0 (patch)
treec2aab9c35eca4fe7b6dc50dcc778f653d887de78
parent4e68490ff423cf27c0a00176ba4f75b17406d2a5 (diff)
downloadgdm-5dcbc5ac1e8877787587d916a0bbcc6c4136a7c0.tar.gz
session: jump to VT up front for X sessions
It turns out that in order for X to work without being run as root, it needs to have its VT be active at start up. This is because it bails out of some of its logind codepaths if it gets given a "paused" device by logind, and then sometimes fails in its fallback code paths as it races to open /dev/dri/card0 while logind is still giving the user permissions to it. As a workaround, until X is fixed, this commit jumps to the VT up front before starting X. That adds flicker, which we'll address in a follow up commit. https://bugzilla.gnome.org/show_bug.cgi?id=745031
-rw-r--r--daemon/gdm-session.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index c66a6ff3..27eb531a 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -2945,10 +2945,11 @@ gdm_session_get_display_mode (GdmSession *self)
return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED;
}
- /* user based X sessions start on a new VT now and are managed
- * by logind
+ /* user based X sessions need us to allocate a VT for them
+ * and jump to it up front, because the X servers logind support
+ * currently relies on X running in the foreground VT.
*/
- return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED;
+ return GDM_SESSION_DISPLAY_MODE_NEW_VT;
}
void