diff options
author | Ray Strode <rstrode@redhat.com> | 2018-08-14 14:52:41 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2021-07-22 13:42:57 -0400 |
commit | 495b4fc0d7c65f76b03108199085df4fca98618c (patch) | |
tree | 7adbeabeb82049e008451fc014c955b32fdc1d76 /daemon/gdm-session-worker.c | |
parent | 2a871da666afd3a5312e061b7933e7b62eb5ee39 (diff) | |
download | gdm-495b4fc0d7c65f76b03108199085df4fca98618c.tar.gz |
session: support new accountsservice Session and SessionType props
At the moment the user's session is stored in a property called
"XSession". This is pretty weird if the user is using wayland.
AccountService now supports a more generic property "Session" and
a related "SessionType" property to replace "XSession".
This commit switches GDM over to use the new properties.
Diffstat (limited to 'daemon/gdm-session-worker.c')
-rw-r--r-- | daemon/gdm-session-worker.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c index 6e307ac6..7d7d2496 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c @@ -2584,6 +2584,20 @@ on_saved_session_name_read (GdmSessionWorker *worker) } static void +on_saved_session_type_read (GdmSessionWorker *worker) +{ + char *session_type; + + session_type = gdm_session_settings_get_session_type (worker->priv->user_settings); + + g_debug ("GdmSessionWorker: Saved session type is %s", session_type); + gdm_dbus_worker_emit_saved_session_type_read (GDM_DBUS_WORKER (worker), + session_type); + g_free (session_type); +} + + +static void do_setup (GdmSessionWorker *worker) { GError *error; @@ -3046,6 +3060,11 @@ gdm_session_worker_handle_initialize (GdmDBusWorker *object, G_CALLBACK (on_saved_session_name_read), worker); + g_signal_connect_swapped (worker->priv->user_settings, + "notify::session-type", + G_CALLBACK (on_saved_session_type_read), + worker); + if (worker->priv->username) { wait_for_settings = !gdm_session_settings_load (worker->priv->user_settings, worker->priv->username); @@ -3102,6 +3121,11 @@ gdm_session_worker_handle_setup (GdmDBusWorker *object, "notify::session-name", G_CALLBACK (on_saved_session_name_read), worker); + g_signal_connect_swapped (worker->priv->user_settings, + "notify::session-type", + G_CALLBACK (on_saved_session_type_read), + worker); + return TRUE; } @@ -3144,6 +3168,10 @@ gdm_session_worker_handle_setup_for_user (GdmDBusWorker *object, "notify::session-name", G_CALLBACK (on_saved_session_name_read), worker); + g_signal_connect_swapped (worker->priv->user_settings, + "notify::session-type", + G_CALLBACK (on_saved_session_type_read), + worker); /* Load settings from accounts daemon before continuing */ |