summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gdm-manager.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 2c76540f..2ef4f9a6 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1327,15 +1327,26 @@ set_up_automatic_login_session (GdmManager *manager,
GdmDisplay *display)
{
GdmSession *session;
+ char *display_session_type = NULL;
gboolean is_initial;
+ gboolean greeter_would_have_been_wayland;
/* 0 is root user; since the daemon talks to the session object
* directly, itself, for automatic login
*/
session = create_embryonic_user_session_for_display (manager, display, 0);
- g_object_get (G_OBJECT (display), "is-initial", &is_initial, NULL);
- g_object_set (G_OBJECT (session), "display-is-initial", is_initial, NULL);
+ g_object_get (G_OBJECT (display),
+ "is-initial", &is_initial,
+ "session-type", &display_session_type,
+ NULL);
+
+ greeter_would_have_been_wayland = g_strcmp0 (display_session_type, "wayland") == 0;
+
+ g_object_set (G_OBJECT (session),
+ "display-is-initial", is_initial,
+ "ignore-wayland", !greeter_would_have_been_wayland,
+ NULL);
g_debug ("GdmManager: Starting automatic login conversation");
gdm_session_start_conversation (session, "gdm-autologin");