diff options
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 */ |