summaryrefslogtreecommitdiff
path: root/daemon/gdm-session.c
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2021-09-06 08:40:46 -0400
committerRay Strode <rstrode@redhat.com>2021-09-06 09:12:52 -0400
commitd17fdb8521576f90191c077806b7f470f6a37be0 (patch)
tree3b78124a88d016be461d617006e127d57b1109df /daemon/gdm-session.c
parent2c499c2586acc3859387e0b7197e8122231c805d (diff)
downloadgdm-d17fdb8521576f90191c077806b7f470f6a37be0.tar.gz
daemon: Don't update session type if no saved session
At the moment we always set the session type when the session name is read. But users don't always have a session type specified. If they don't, then don't set the session type. https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/153
Diffstat (limited to 'daemon/gdm-session.c')
-rw-r--r--daemon/gdm-session.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 11762bfb..c1e2be00 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -1022,19 +1022,22 @@ worker_on_saved_session_name_read (GdmDBusWorker *worker,
g_debug ("GdmSession: not using invalid .dmrc session: %s", session_name);
g_free (self->saved_session);
self->saved_session = NULL;
- } else if (strcmp (session_name,
- get_default_session_name (self)) != 0) {
- g_free (self->saved_session);
- self->saved_session = g_strdup (session_name);
-
- if (self->greeter_interface != NULL) {
- gdm_dbus_greeter_emit_default_session_name_changed (self->greeter_interface,
- session_name);
+ update_session_type (self);
+ } else {
+ if (strcmp (session_name,
+ get_default_session_name (self)) != 0) {
+ g_free (self->saved_session);
+ self->saved_session = g_strdup (session_name);
+
+ if (self->greeter_interface != NULL) {
+ gdm_dbus_greeter_emit_default_session_name_changed (self->greeter_interface,
+ session_name);
+ }
}
+ if (self->saved_session_type != NULL)
+ set_session_type (self, self->saved_session_type);
}
- update_session_type (self);
-
}
static void