[gdm/gnome-3-14] worker: make sure SavedSessionNameRead is emitted for conversations without initial username
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm/gnome-3-14] worker: make sure SavedSessionNameRead is emitted for conversations without initial username
- Date: Wed, 25 Mar 2015 20:14:38 +0000 (UTC)
commit ca17c02d7c06f4e3ca3163f183907218e9c97cb7
Author: Ray Strode <rstrode redhat com>
Date: Thu Nov 13 10:57:05 2014 -0500
worker: make sure SavedSessionNameRead is emitted for conversations without initial username
We emit SavedSessionNameRead when we know the session associated with a
user account. Unfortunately, we don't emit the signal in the case we
don't know the username up front (such as with a smartcard).
This commit fixes it to be emitted in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=740139
daemon/gdm-session-worker.c | 33 +++++++++++++++++++++------------
1 files changed, 21 insertions(+), 12 deletions(-)
---
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index 89505c2..12753bf 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -2399,18 +2399,6 @@ do_setup (GdmSessionWorker *worker)
g_dbus_method_invocation_take_error (worker->priv->pending_invocation, error);
}
worker->priv->pending_invocation = NULL;
-
- /* These singal handlers should be disconnected after the loading,
- * so that gdm_session_settings_set_* APIs don't cause the emitting
- * of Saved*NameRead D-Bus signals any more.
- */
- g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
- G_CALLBACK (on_saved_session_name_read),
- worker);
-
- g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
- G_CALLBACK (on_saved_language_name_read),
- worker);
}
static void
@@ -2504,6 +2492,18 @@ on_settings_is_loaded_changed (GdmSessionSettings *user_settings,
return;
}
+ /* These singal handlers should be disconnected after the loading,
+ * so that gdm_session_settings_set_* APIs don't cause the emitting
+ * of Saved*NameRead D-Bus signals any more.
+ */
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_session_name_read),
+ worker);
+
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_language_name_read),
+ worker);
+
if (worker->priv->state == GDM_SESSION_WORKER_STATE_NONE) {
g_debug ("GdmSessionWorker: queuing setup for user: %s %s",
worker->priv->username, worker->priv->display_device);
@@ -2773,6 +2773,15 @@ gdm_session_worker_handle_setup (GdmDBusWorker *object,
worker->priv->display_is_local = display_is_local;
worker->priv->username = NULL;
+ g_signal_connect_swapped (worker->priv->user_settings,
+ "notify::language-name",
+ G_CALLBACK (on_saved_language_name_read),
+ worker);
+
+ g_signal_connect_swapped (worker->priv->user_settings,
+ "notify::session-name",
+ G_CALLBACK (on_saved_session_name_read),
+ worker);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]