You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.4 KiB

From 0012497171500090b55e4c8e967809a5b2daaa94 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 14 Feb 2018 16:07:15 -0500
Subject: [PATCH] Revert "session: don't call gdm_session_defaults_changed from
setup"
This reverts commit 572a19324b75cc1f1b2db4908e2d7c9f06e4e335.
It turns out we need this call for more than just the session type,
we also need to it to inform the greeter about the default session
to use.
---
daemon/gdm-session.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 3a1b7f23..e9cbd0ec 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -2368,78 +2368,80 @@ initialize (GdmSession *self,
g_variant_builder_add_parsed (&details, "{'seat-id', <%s>}", self->priv->display_seat_id);
if (self->priv->display_x11_authority_file != NULL)
g_variant_builder_add_parsed (&details, "{'x11-authority-file', <%s>}", self->priv->display_x11_authority_file);
g_debug ("GdmSession: Beginning initialization");
conversation = find_conversation_by_name (self, service_name);
if (conversation != NULL) {
gdm_dbus_worker_call_initialize (conversation->worker_proxy,
g_variant_builder_end (&details),
conversation->worker_cancellable,
(GAsyncReadyCallback) on_initialization_complete_cb,
conversation);
}
g_free (extensions);
}
void
gdm_session_setup (GdmSession *self,
const char *service_name)
{
g_return_if_fail (GDM_IS_SESSION (self));
update_session_type (self);
initialize (self, service_name, NULL, NULL);
+ gdm_session_defaults_changed (self);
}
void
gdm_session_setup_for_user (GdmSession *self,
const char *service_name,
const char *username)
{
g_return_if_fail (GDM_IS_SESSION (self));
g_return_if_fail (username != NULL);
update_session_type (self);
gdm_session_select_user (self, username);
self->priv->is_program_session = FALSE;
initialize (self, service_name, self->priv->selected_user, NULL);
+ gdm_session_defaults_changed (self);
}
void
gdm_session_setup_for_program (GdmSession *self,
const char *service_name,
const char *username,
const char *log_file)
{
g_return_if_fail (GDM_IS_SESSION (self));
self->priv->is_program_session = TRUE;
initialize (self, service_name, username, log_file);
}
void
gdm_session_authenticate (GdmSession *self,
const char *service_name)
{
GdmSessionConversation *conversation;
g_return_if_fail (GDM_IS_SESSION (self));
conversation = find_conversation_by_name (self, service_name);
if (conversation != NULL) {
gdm_dbus_worker_call_authenticate (conversation->worker_proxy,
conversation->worker_cancellable,
(GAsyncReadyCallback) on_authenticate_cb,
conversation);
}
--
2.14.3