From 0b20eb823afc068a436ca67b618ef156107c1747 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Feb 03 2011 03:11:00 +0000 Subject: Update to 2.91.6 --- diff --git a/gdm-multistack.patch b/gdm-multistack.patch index dfb211a..5cd4087 100644 --- a/gdm-multistack.patch +++ b/gdm-multistack.patch @@ -1,4 +1,4 @@ -From 1a8f15321d71e8700777b859bd703b80572fa4b6 Mon Sep 17 00:00:00 2001 +From 2ee1172a7fbef12c0a6766b07b3ca8fe9439007b Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Thu, 22 Jul 2010 13:38:09 -0400 Subject: [PATCH 01/35] Revert "Don't wait a mandatory 2 seconds when resetting greeter" @@ -12,7 +12,7 @@ long enough. A better fix would belong in the greeter. 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index e3cb96d..8906e3a 100644 +index a03ccfc..3081005 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -294,7 +294,7 @@ queue_greeter_reset (GdmSimpleSlave *slave) @@ -25,10 +25,10 @@ index e3cb96d..8906e3a 100644 static void -- -1.7.3.3 +1.7.3.5 -From 1538a1859971d7ed886a6d2490dc346bac05f672 Mon Sep 17 00:00:00 2001 +From 5eb1e0e96d337484c3e6546ed12af4c9eb7487cf Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 7 Jul 2010 17:16:38 -0400 Subject: [PATCH 02/35] Don't set list-visible unless the widget is visible @@ -46,7 +46,7 @@ isn't visible to begin with. 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c -index db2d9b2..5a078e8 100644 +index db2d9b2..ed2c3cc 100644 --- a/gui/simple-greeter/gdm-chooser-widget.c +++ b/gui/simple-greeter/gdm-chooser-widget.c @@ -699,7 +699,7 @@ update_chooser_visibility (GdmChooserWidget *widget) @@ -54,15 +54,15 @@ index db2d9b2..5a078e8 100644 if (gdm_chooser_widget_get_number_of_items (widget) > 0) { gtk_widget_show (widget->priv->frame); - set_chooser_list_visible (widget, TRUE); -+ set_chooser_list_visible (widget, GTK_WIDGET_VISIBLE (widget)); ++ set_chooser_list_visible (widget, gtk_widget_get_visible (widget)); } else { gtk_widget_hide (widget->priv->frame); set_chooser_list_visible (widget, FALSE); -- -1.7.3.3 +1.7.3.5 -From 35e2c60276db3ff902c3f7ad98b6a508e68ab7a9 Mon Sep 17 00:00:00 2001 +From 04327b6c06566a00f5916b872944b637dcb8b30e Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 28 Jun 2010 14:35:35 -0400 Subject: [PATCH 03/35] Add user chooser to ui file @@ -76,10 +76,10 @@ This way is a lot cleaner. 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 6069e00..b7ee893 100644 +index 9a21edd..9249906 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -1224,6 +1224,17 @@ create_computer_info (GdmGreeterLoginWindow *login_window) +@@ -1222,6 +1222,17 @@ create_computer_info (GdmGreeterLoginWindow *login_window) static void @@ -97,7 +97,7 @@ index 6069e00..b7ee893 100644 load_theme (GdmGreeterLoginWindow *login_window) { GtkWidget *entry; -@@ -1234,6 +1245,8 @@ load_theme (GdmGreeterLoginWindow *login_window) +@@ -1232,6 +1243,8 @@ load_theme (GdmGreeterLoginWindow *login_window) gdm_profile_start (NULL); @@ -106,7 +106,7 @@ index 6069e00..b7ee893 100644 login_window->priv->builder = gtk_builder_new (); if (!gtk_builder_add_from_file (login_window->priv->builder, UIDIR "/" UI_XML_FILE, &error)) { g_warning ("Couldn't load builder file: %s", error->message); -@@ -1267,12 +1280,7 @@ load_theme (GdmGreeterLoginWindow *login_window) +@@ -1265,12 +1278,7 @@ load_theme (GdmGreeterLoginWindow *login_window) box = GTK_WIDGET (gtk_builder_get_object (login_window->priv->builder, "window-frame")); gtk_container_add (GTK_CONTAINER (login_window), box); @@ -121,7 +121,7 @@ index 6069e00..b7ee893 100644 gdm_user_chooser_widget_set_show_only_chosen (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); diff --git a/gui/simple-greeter/gdm-greeter-login-window.ui b/gui/simple-greeter/gdm-greeter-login-window.ui -index d8cf1cc..83375ed 100644 +index 9f1bc69..946ec6b 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.ui +++ b/gui/simple-greeter/gdm-greeter-login-window.ui @@ -160,7 +160,14 @@ @@ -141,10 +141,10 @@ index d8cf1cc..83375ed 100644 -- -1.7.3.3 +1.7.3.5 -From 863ef39bb74f65363fa0edfd6970199c11f7f433 Mon Sep 17 00:00:00 2001 +From bfe00e563553f2c7948135e5674c3edbce15bd97 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 20 Feb 2009 14:05:20 -0500 Subject: [PATCH 04/35] Add new api to ask when chooser widget is done loading items @@ -155,7 +155,7 @@ Subject: [PATCH 04/35] Add new api to ask when chooser widget is done loading it 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c -index 5a078e8..6b4dd67 100644 +index ed2c3cc..4694ef3 100644 --- a/gui/simple-greeter/gdm-chooser-widget.c +++ b/gui/simple-greeter/gdm-chooser-widget.c @@ -99,6 +99,7 @@ struct GdmChooserWidgetPrivate @@ -197,10 +197,10 @@ index 11a6456..3f6fea3 100644 */ void gdm_chooser_widget_loaded (GdmChooserWidget *widget); -- -1.7.3.3 +1.7.3.5 -From 50929cd96a824e88daf0f9dc4aa21b99fc841f60 Mon Sep 17 00:00:00 2001 +From 470493fa63361cde617f242aa9fa10d14d9cff13 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Mar 2009 11:19:40 -0500 Subject: [PATCH 05/35] Create session settings object up front @@ -212,10 +212,10 @@ before the PAM conversation is started. 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c -index 281c554..e8ebc60 100644 +index 648d6f7..0a0d585 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c -@@ -2297,8 +2297,6 @@ do_setup (GdmSessionWorker *worker) +@@ -2249,8 +2249,6 @@ do_setup (GdmSessionWorker *worker) GError *error; gboolean res; @@ -224,7 +224,7 @@ index 281c554..e8ebc60 100644 g_signal_connect_swapped (worker->priv->user_settings, "notify::language-name", G_CALLBACK (on_saved_language_name_read), -@@ -2924,6 +2922,7 @@ gdm_session_worker_init (GdmSessionWorker *worker) +@@ -2869,6 +2867,7 @@ gdm_session_worker_init (GdmSessionWorker *worker) g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_free); @@ -233,21 +233,21 @@ index 281c554..e8ebc60 100644 static void -- -1.7.3.3 +1.7.3.5 -From 7c5bd8125257dff521474681c3cbbf43ec56e1bc Mon Sep 17 00:00:00 2001 +From 205889de436a834a3e28150869ba2156ee802eba Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 13 Jul 2010 22:42:43 -0400 Subject: [PATCH 06/35] disconnect signal handlers in destroy session We don't want them firing as part of object destruction --- - daemon/gdm-simple-slave.c | 104 ++++++++++++++++++++++++++++++++++++++++---- - 1 files changed, 94 insertions(+), 10 deletions(-) + daemon/gdm-simple-slave.c | 100 ++++++++++++++++++++++++++++++++++++++++----- + 1 files changed, 90 insertions(+), 10 deletions(-) diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 8906e3a..6a90d02 100644 +index 3081005..8f80cb7 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -104,6 +104,7 @@ static void gdm_simple_slave_finalize (GObject *object); @@ -275,7 +275,7 @@ index 8906e3a..6a90d02 100644 reset_session (GdmSimpleSlave *slave) { destroy_session (slave); -@@ -851,6 +842,99 @@ create_new_session (GdmSimpleSlave *slave) +@@ -834,6 +825,95 @@ create_new_session (GdmSimpleSlave *slave) } static void @@ -359,10 +359,6 @@ index 8906e3a..6a90d02 100644 + slave); + + g_signal_handlers_disconnect_by_func (slave->priv->session, -+ G_CALLBACK (on_default_layout_name_changed), -+ slave); -+ -+ g_signal_handlers_disconnect_by_func (slave->priv->session, + G_CALLBACK (on_default_session_name_changed), + slave); + @@ -376,10 +372,10 @@ index 8906e3a..6a90d02 100644 GdmSimpleSlave *slave) { -- -1.7.3.3 +1.7.3.5 -From 71c371f27fe31cc3f41a5d33dceb66aacec96c8d Mon Sep 17 00:00:00 2001 +From 4da3c0e64bc4763ad73bb3fa4b9e0a82097e3b52 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 16 Jan 2009 11:00:08 -0500 Subject: [PATCH 07/35] Introduce new Conversation object @@ -398,7 +394,7 @@ screen is talking to. --- daemon/gdm-factory-slave.c | 5 +- daemon/gdm-product-slave.c | 29 +++- - daemon/gdm-session-direct.c | 318 ++++++++++++++++++++++++--------------- + daemon/gdm-session-direct.c | 314 ++++++++++++++++++++++++--------------- daemon/gdm-session-private.h | 3 +- daemon/gdm-session-relay.c | 15 ++- daemon/gdm-session-worker-job.c | 7 + @@ -407,10 +403,10 @@ screen is talking to. daemon/gdm-session.h | 9 +- daemon/gdm-simple-slave.c | 3 - daemon/test-session.c | 5 +- - 11 files changed, 263 insertions(+), 145 deletions(-) + 11 files changed, 260 insertions(+), 144 deletions(-) diff --git a/daemon/gdm-factory-slave.c b/daemon/gdm-factory-slave.c -index b413497..0151ab2 100644 +index 5727986..109271a 100644 --- a/daemon/gdm-factory-slave.c +++ b/daemon/gdm-factory-slave.c @@ -181,7 +181,8 @@ on_session_secret_info_query (GdmSession *session, @@ -433,7 +429,7 @@ index b413497..0151ab2 100644 static void diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c -index a423965..9be89b4 100644 +index 2d1109e..84d5c49 100644 --- a/daemon/gdm-product-slave.c +++ b/daemon/gdm-product-slave.c @@ -246,19 +246,21 @@ relay_session_started (GdmProductSlave *slave, @@ -462,7 +458,7 @@ index a423965..9be89b4 100644 } static void -@@ -805,7 +807,24 @@ static void +@@ -783,7 +785,24 @@ static void on_relay_start_conversation (GdmProductSlave *slave, DBusMessage *message) { @@ -489,7 +485,7 @@ index a423965..9be89b4 100644 static void diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index 223f6f4..aa76f52 100644 +index c8361b4..39ff815 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c @@ -67,6 +67,16 @@ @@ -509,7 +505,7 @@ index 223f6f4..aa76f52 100644 struct _GdmSessionDirectPrivate { /* per open scope */ -@@ -79,8 +89,7 @@ struct _GdmSessionDirectPrivate +@@ -77,8 +87,7 @@ struct _GdmSessionDirectPrivate char *selected_user; char *user_x11_authority_file; @@ -519,7 +515,7 @@ index 223f6f4..aa76f52 100644 GdmSessionWorkerJob *job; GPid session_pid; -@@ -123,39 +132,39 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirect, +@@ -121,39 +130,39 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirect, gdm_session_iface_init)) static gboolean @@ -566,7 +562,7 @@ index 223f6f4..aa76f52 100644 message = dbus_message_new_signal (GDM_SESSION_DBUS_PATH, GDM_SESSION_DBUS_INTERFACE, -@@ -164,7 +173,7 @@ send_dbus_string_signal (GdmSessionDirect *session, +@@ -162,7 +171,7 @@ send_dbus_string_signal (GdmSessionDirect *session, dbus_message_iter_init_append (message, &iter); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &text); @@ -575,7 +571,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Could not send %s signal", name ? name : "(null)"); } -@@ -173,18 +182,18 @@ send_dbus_string_signal (GdmSessionDirect *session, +@@ -171,18 +180,18 @@ send_dbus_string_signal (GdmSessionDirect *session, } static void @@ -598,7 +594,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Could not send %s signal", name); } -@@ -196,22 +205,32 @@ on_authentication_failed (GdmSession *session, +@@ -194,22 +203,32 @@ on_authentication_failed (GdmSession *session, const char *message) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -641,7 +637,7 @@ index 223f6f4..aa76f52 100644 } static void -@@ -219,11 +238,16 @@ on_session_start_failed (GdmSession *session, +@@ -217,11 +236,16 @@ on_session_start_failed (GdmSession *session, const char *message) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -663,7 +659,7 @@ index 223f6f4..aa76f52 100644 } static void -@@ -231,6 +255,7 @@ on_session_exited (GdmSession *session, +@@ -229,6 +253,7 @@ on_session_exited (GdmSession *session, int exit_code) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -671,7 +667,7 @@ index 223f6f4..aa76f52 100644 gdm_session_record_logout (impl->priv->session_pid, impl->priv->selected_user, impl->priv->display_hostname, -@@ -815,54 +840,52 @@ gdm_session_direct_handle_username_changed (GdmSessionDirect *session, +@@ -765,54 +790,52 @@ gdm_session_direct_handle_username_changed (GdmSessionDirect *session, } static void @@ -743,7 +739,7 @@ index 223f6f4..aa76f52 100644 } static DBusHandlerResult -@@ -872,6 +895,9 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, +@@ -822,6 +845,9 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, { DBusError error; const char *text; @@ -753,7 +749,7 @@ index 223f6f4..aa76f52 100644 dbus_error_init (&error); if (! dbus_message_get_args (message, &error, -@@ -880,7 +906,7 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, +@@ -830,7 +856,7 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, g_warning ("ERROR: %s", error.message); } @@ -762,7 +758,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Emitting 'info-query' signal"); _gdm_session_info_query (GDM_SESSION (session), text); -@@ -895,6 +921,9 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, +@@ -845,6 +871,9 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, { DBusError error; const char *text; @@ -772,7 +768,7 @@ index 223f6f4..aa76f52 100644 dbus_error_init (&error); if (! dbus_message_get_args (message, &error, -@@ -903,7 +932,7 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, +@@ -853,7 +882,7 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, g_warning ("ERROR: %s", error.message); } @@ -781,7 +777,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Emitting 'secret-info-query' signal"); _gdm_session_secret_info_query (GDM_SESSION (session), text); -@@ -943,9 +972,13 @@ gdm_session_direct_handle_cancel_pending_query (GdmSessionDirect *session, +@@ -893,9 +922,13 @@ gdm_session_direct_handle_cancel_pending_query (GdmSessionDirect *session, DBusMessage *message) { DBusMessage *reply; @@ -796,7 +792,7 @@ index 223f6f4..aa76f52 100644 reply = dbus_message_new_method_return (message); dbus_connection_send (connection, reply, NULL); -@@ -1567,16 +1600,18 @@ handle_connection (DBusServer *server, +@@ -1482,16 +1515,18 @@ handle_connection (DBusServer *server, void *user_data) { GdmSessionDirect *session = GDM_SESSION_DIRECT (user_data); @@ -817,7 +813,7 @@ index 223f6f4..aa76f52 100644 dbus_connection_ref (new_connection); dbus_connection_setup_with_g_main (new_connection, NULL); -@@ -1594,7 +1629,8 @@ handle_connection (DBusServer *server, +@@ -1509,7 +1544,8 @@ handle_connection (DBusServer *server, session); g_debug ("GdmSessionDirect: Emitting conversation-started signal"); @@ -827,7 +823,7 @@ index 223f6f4..aa76f52 100644 } } -@@ -1664,8 +1700,6 @@ gdm_session_direct_init (GdmSessionDirect *session) +@@ -1579,8 +1615,6 @@ gdm_session_direct_init (GdmSessionDirect *session) G_CALLBACK (on_session_exited), NULL); @@ -836,7 +832,7 @@ index 223f6f4..aa76f52 100644 session->priv->environment = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, -@@ -1677,7 +1711,7 @@ gdm_session_direct_init (GdmSessionDirect *session) +@@ -1592,7 +1626,7 @@ gdm_session_direct_init (GdmSessionDirect *session) static void worker_started (GdmSessionWorkerJob *job, @@ -845,7 +841,7 @@ index 223f6f4..aa76f52 100644 { g_debug ("GdmSessionDirect: Worker job started"); } -@@ -1685,87 +1719,105 @@ worker_started (GdmSessionWorkerJob *job, +@@ -1600,87 +1634,105 @@ worker_started (GdmSessionWorkerJob *job, static void worker_exited (GdmSessionWorkerJob *job, int code, @@ -987,7 +983,7 @@ index 223f6f4..aa76f52 100644 } static void -@@ -1778,6 +1830,7 @@ send_setup (GdmSessionDirect *session, +@@ -1693,6 +1745,7 @@ send_setup (GdmSessionDirect *session, const char *display_device; const char *display_hostname; const char *display_x11_authority_file; @@ -995,7 +991,7 @@ index 223f6f4..aa76f52 100644 g_assert (service_name != NULL); -@@ -1815,7 +1868,8 @@ send_setup (GdmSessionDirect *session, +@@ -1730,7 +1783,8 @@ send_setup (GdmSessionDirect *session, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_hostname); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_x11_authority_file); @@ -1005,7 +1001,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Could not send %s signal", "Setup"); } -@@ -1833,6 +1887,7 @@ send_setup_for_user (GdmSessionDirect *session, +@@ -1748,6 +1802,7 @@ send_setup_for_user (GdmSessionDirect *session, const char *display_hostname; const char *display_x11_authority_file; const char *selected_user; @@ -1013,7 +1009,7 @@ index 223f6f4..aa76f52 100644 g_assert (service_name != NULL); -@@ -1876,7 +1931,8 @@ send_setup_for_user (GdmSessionDirect *session, +@@ -1791,7 +1846,8 @@ send_setup_for_user (GdmSessionDirect *session, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_x11_authority_file); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &selected_user); @@ -1023,7 +1019,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Could not send %s signal", "SetupForUser"); } -@@ -1890,7 +1946,8 @@ gdm_session_direct_setup (GdmSession *session, +@@ -1805,7 +1861,8 @@ gdm_session_direct_setup (GdmSession *session, GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); g_return_if_fail (session != NULL); @@ -1033,7 +1029,7 @@ index 223f6f4..aa76f52 100644 send_setup (impl, service_name); gdm_session_direct_defaults_changed (impl); -@@ -1904,7 +1961,8 @@ gdm_session_direct_setup_for_user (GdmSession *session, +@@ -1819,7 +1876,8 @@ gdm_session_direct_setup_for_user (GdmSession *session, GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); g_return_if_fail (session != NULL); @@ -1043,7 +1039,7 @@ index 223f6f4..aa76f52 100644 g_return_if_fail (username != NULL); gdm_session_direct_select_user (session, username); -@@ -1917,22 +1975,28 @@ static void +@@ -1832,22 +1890,28 @@ static void gdm_session_direct_authenticate (GdmSession *session) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1076,7 +1072,7 @@ index 223f6f4..aa76f52 100644 } static void -@@ -1940,16 +2004,19 @@ gdm_session_direct_accredit (GdmSession *session, +@@ -1855,16 +1919,19 @@ gdm_session_direct_accredit (GdmSession *session, int cred_flag) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1099,7 +1095,7 @@ index 223f6f4..aa76f52 100644 break; default: g_assert_not_reached (); -@@ -1963,6 +2030,7 @@ send_environment_variable (const char *key, +@@ -1878,6 +1945,7 @@ send_environment_variable (const char *key, { DBusMessage *message; DBusMessageIter iter; @@ -1107,7 +1103,7 @@ index 223f6f4..aa76f52 100644 message = dbus_message_new_signal (GDM_SESSION_DBUS_PATH, GDM_SESSION_DBUS_INTERFACE, -@@ -1972,7 +2040,8 @@ send_environment_variable (const char *key, +@@ -1887,7 +1955,8 @@ send_environment_variable (const char *key, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &key); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &value); @@ -1117,7 +1113,7 @@ index 223f6f4..aa76f52 100644 g_debug ("GdmSessionDirect: Could not send %s signal", "SetEnvironmentVariable"); } -@@ -2120,6 +2189,7 @@ static void +@@ -2018,6 +2087,7 @@ static void gdm_session_direct_start_session (GdmSession *session) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1125,7 +1121,7 @@ index 223f6f4..aa76f52 100644 char *command; char *program; -@@ -2139,7 +2209,8 @@ gdm_session_direct_start_session (GdmSession *session) +@@ -2037,7 +2107,8 @@ gdm_session_direct_start_session (GdmSession *session) setup_session_environment (impl); send_environment (impl); @@ -1135,7 +1131,7 @@ index 223f6f4..aa76f52 100644 g_free (program); } -@@ -2152,16 +2223,12 @@ gdm_session_direct_close (GdmSession *session) +@@ -2050,16 +2121,12 @@ gdm_session_direct_close (GdmSession *session) g_debug ("GdmSessionDirect: Closing session"); @@ -1158,7 +1154,7 @@ index 223f6f4..aa76f52 100644 } g_free (impl->priv->selected_user); -@@ -2199,10 +2266,13 @@ gdm_session_direct_answer_query (GdmSession *session, +@@ -2091,10 +2158,13 @@ gdm_session_direct_answer_query (GdmSession *session, const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1173,7 +1169,7 @@ index 223f6f4..aa76f52 100644 } static void -@@ -2212,7 +2282,7 @@ gdm_session_direct_cancel (GdmSession *session) +@@ -2104,7 +2174,7 @@ gdm_session_direct_cancel (GdmSession *session) g_return_if_fail (session != NULL); @@ -1182,7 +1178,7 @@ index 223f6f4..aa76f52 100644 } char * -@@ -2284,6 +2354,7 @@ gdm_session_direct_select_session (GdmSession *session, +@@ -2176,6 +2246,7 @@ gdm_session_direct_select_session (GdmSession *session, const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1190,7 +1186,7 @@ index 223f6f4..aa76f52 100644 g_free (impl->priv->selected_session); -@@ -2293,7 +2364,8 @@ gdm_session_direct_select_session (GdmSession *session, +@@ -2185,7 +2256,8 @@ gdm_session_direct_select_session (GdmSession *session, impl->priv->selected_session = g_strdup (text); } @@ -1200,7 +1196,7 @@ index 223f6f4..aa76f52 100644 get_session_name (impl)); } -@@ -2302,6 +2374,7 @@ gdm_session_direct_select_language (GdmSession *session, +@@ -2194,6 +2266,7 @@ gdm_session_direct_select_language (GdmSession *session, const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1208,7 +1204,7 @@ index 223f6f4..aa76f52 100644 g_free (impl->priv->selected_language); -@@ -2311,7 +2384,8 @@ gdm_session_direct_select_language (GdmSession *session, +@@ -2203,7 +2276,8 @@ gdm_session_direct_select_language (GdmSession *session, impl->priv->selected_language = g_strdup (text); } @@ -1218,26 +1214,8 @@ index 223f6f4..aa76f52 100644 get_language_name (impl)); } -@@ -2320,6 +2394,7 @@ gdm_session_direct_select_layout (GdmSession *session, - const char *text) - { - GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); -+ GdmSessionConversation *conversation; - - g_free (impl->priv->selected_layout); - -@@ -2329,7 +2404,8 @@ gdm_session_direct_select_layout (GdmSession *session, - impl->priv->selected_layout = g_strdup (text); - } - -- send_dbus_string_signal (impl, "SetLayoutName", -+ conversation = impl->priv->conversation; -+ send_dbus_string_signal (conversation, "SetLayoutName", - get_layout_name (impl)); - } - diff --git a/daemon/gdm-session-private.h b/daemon/gdm-session-private.h -index 7ccf0d7..74b6069 100644 +index 88ac23c..34adff5 100644 --- a/daemon/gdm-session-private.h +++ b/daemon/gdm-session-private.h @@ -27,7 +27,8 @@ @@ -1251,7 +1229,7 @@ index 7ccf0d7..74b6069 100644 void _gdm_session_setup_failed (GdmSession *session, const char *message); diff --git a/daemon/gdm-session-relay.c b/daemon/gdm-session-relay.c -index da0ecb3..a0b4cbf 100644 +index 1ab4b05..d559c71 100644 --- a/daemon/gdm-session-relay.c +++ b/daemon/gdm-session-relay.c @@ -180,10 +180,11 @@ send_dbus_void_signal (GdmSessionRelay *session_relay, @@ -1268,7 +1246,7 @@ index da0ecb3..a0b4cbf 100644 } static void -@@ -728,8 +729,14 @@ handle_conversation_started (GdmSessionRelay *session_relay, +@@ -720,8 +721,14 @@ handle_conversation_started (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -1283,7 +1261,7 @@ index da0ecb3..a0b4cbf 100644 g_debug ("GdmSessionRelay: Conversation Started"); -@@ -737,7 +744,7 @@ handle_conversation_started (GdmSessionRelay *session_relay, +@@ -729,7 +736,7 @@ handle_conversation_started (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -1292,7 +1270,7 @@ index da0ecb3..a0b4cbf 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -812,6 +819,7 @@ do_introspect (DBusConnection *connection, +@@ -804,6 +811,7 @@ do_introspect (DBusConnection *connection, xml = g_string_append (xml, " \n" " \n" @@ -1300,7 +1278,7 @@ index da0ecb3..a0b4cbf 100644 " \n" " \n" " \n" -@@ -873,6 +881,7 @@ do_introspect (DBusConnection *connection, +@@ -865,6 +873,7 @@ do_introspect (DBusConnection *connection, " \n" " \n" @@ -1340,10 +1318,10 @@ index 5ad1c92..d24f025 100644 #endif /* __GDM_SESSION_WORKER_JOB_H */ diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 1e2af92..1820e29 100644 +index d6baa22..6a87ddd 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -80,11 +80,12 @@ gdm_session_get_type (void) +@@ -79,11 +79,12 @@ gdm_session_get_type (void) } void @@ -1358,7 +1336,7 @@ index 1e2af92..1820e29 100644 } void -@@ -220,7 +221,7 @@ gdm_session_class_init (gpointer g_iface) +@@ -210,7 +211,7 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, conversation_started), NULL, NULL, @@ -1367,7 +1345,7 @@ index 1e2af92..1820e29 100644 G_TYPE_NONE, 0); signals [SETUP_COMPLETE] = -@@ -654,10 +655,11 @@ _gdm_session_session_died (GdmSession *session, +@@ -633,10 +634,11 @@ _gdm_session_session_died (GdmSession *session, } void @@ -1382,7 +1360,7 @@ index 1e2af92..1820e29 100644 void diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h -index fb199d3..00c2fa4 100644 +index a1e885d..202da36 100644 --- a/daemon/gdm-session.h +++ b/daemon/gdm-session.h @@ -45,7 +45,8 @@ struct _GdmSessionIface @@ -1395,7 +1373,7 @@ index fb199d3..00c2fa4 100644 void (* setup) (GdmSession *session, const char *service_name); void (* setup_for_user) (GdmSession *session, -@@ -107,7 +108,8 @@ struct _GdmSessionIface +@@ -105,7 +106,8 @@ struct _GdmSessionIface int exit_code); void (* session_died) (GdmSession *session, int signal_number); @@ -1405,7 +1383,7 @@ index fb199d3..00c2fa4 100644 void (* closed) (GdmSession *session); void (* selected_user_changed) (GdmSession *session, const char *text); -@@ -122,7 +124,8 @@ struct _GdmSessionIface +@@ -118,7 +120,8 @@ struct _GdmSessionIface GType gdm_session_get_type (void) G_GNUC_CONST; @@ -1416,7 +1394,7 @@ index fb199d3..00c2fa4 100644 const char *service_name); void gdm_session_setup_for_user (GdmSession *session, diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 6a90d02..1cad6ad 100644 +index 8f80cb7..88ea9d0 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -243,7 +243,6 @@ reset_session (GdmSimpleSlave *slave) @@ -1427,7 +1405,7 @@ index 6a90d02..1cad6ad 100644 } static gboolean -@@ -1054,8 +1053,6 @@ on_greeter_connected (GdmGreeterServer *greeter_server, +@@ -1025,8 +1024,6 @@ on_greeter_connected (GdmGreeterServer *greeter_server, g_debug ("GdmSimpleSlave: Greeter connected"); @@ -1464,10 +1442,10 @@ index 8bed085..9bfda86 100644 g_signal_connect (session, "conversation-started", -- -1.7.3.3 +1.7.3.5 -From 24794eef2b3f4397542f45899948fa65e601851a Mon Sep 17 00:00:00 2001 +From 771969eb53ffd05956c59461e5958ba4a2fc4fe4 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Feb 2009 10:55:03 -0500 Subject: [PATCH 08/35] Rename session worker to the service it's managing @@ -1481,10 +1459,10 @@ it will be obvious which worker is managing which conversation. 3 files changed, 57 insertions(+), 16 deletions(-) diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index aa76f52..87e38d3 100644 +index 39ff815..5b30ecd 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c -@@ -1745,6 +1745,7 @@ start_conversation (GdmSessionDirect *session, +@@ -1660,6 +1660,7 @@ start_conversation (GdmSessionDirect *session, const char *service_name) { GdmSessionConversation *conversation; @@ -1492,7 +1470,7 @@ index aa76f52..87e38d3 100644 conversation = g_new0 (GdmSessionConversation, 1); conversation->session = session; -@@ -1765,12 +1766,16 @@ start_conversation (GdmSessionDirect *session, +@@ -1680,12 +1681,16 @@ start_conversation (GdmSessionDirect *session, G_CALLBACK (worker_died), conversation); @@ -1653,10 +1631,10 @@ index d24f025..4833f23 100644 GPid gdm_session_worker_job_get_pid (GdmSessionWorkerJob *session_worker_job); -- -1.7.3.3 +1.7.3.5 -From 2719a3241a971b47a9c5e426280419521a01eb9c Mon Sep 17 00:00:00 2001 +From 63c312ed2f3580ccdb02adcc9c58836259317414 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 16 Jan 2009 13:01:48 -0500 Subject: [PATCH 09/35] Make greeter/autologin session explicitly request PAM conversation @@ -1682,7 +1660,7 @@ come back one-by-one. 7 files changed, 111 insertions(+), 15 deletions(-) diff --git a/daemon/gdm-factory-slave.c b/daemon/gdm-factory-slave.c -index 0151ab2..f30664f 100644 +index 109271a..9bae550 100644 --- a/daemon/gdm-factory-slave.c +++ b/daemon/gdm-factory-slave.c @@ -186,7 +186,8 @@ on_session_conversation_started (GdmSession *session, @@ -1696,7 +1674,7 @@ index 0151ab2..f30664f 100644 static void diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c -index 1ab01e4..03ecfca 100644 +index 6a021d1..463ba6a 100644 --- a/daemon/gdm-greeter-server.c +++ b/daemon/gdm-greeter-server.c @@ -70,6 +70,7 @@ enum { @@ -1707,7 +1685,7 @@ index 1ab01e4..03ecfca 100644 BEGIN_AUTO_LOGIN, BEGIN_VERIFICATION, BEGIN_VERIFICATION_FOR_USER, -@@ -254,9 +255,10 @@ gdm_greeter_server_reset (GdmGreeterServer *greeter_server) +@@ -253,9 +254,10 @@ gdm_greeter_server_reset (GdmGreeterServer *greeter_server) } gboolean @@ -1720,7 +1698,7 @@ index 1ab01e4..03ecfca 100644 return TRUE; } -@@ -331,6 +333,34 @@ generate_address (void) +@@ -323,6 +325,34 @@ generate_address (void) } static DBusHandlerResult @@ -1755,7 +1733,7 @@ index 1ab01e4..03ecfca 100644 handle_begin_verification (GdmGreeterServer *greeter_server, DBusConnection *connection, DBusMessage *message) -@@ -653,7 +683,9 @@ greeter_handle_child_message (DBusConnection *connection, +@@ -618,7 +648,9 @@ greeter_handle_child_message (DBusConnection *connection, { GdmGreeterServer *greeter_server = GDM_GREETER_SERVER (user_data); @@ -1766,7 +1744,7 @@ index 1ab01e4..03ecfca 100644 return handle_begin_verification (greeter_server, connection, message); } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "BeginVerificationForUser")) { return handle_begin_verification_for_user (greeter_server, connection, message); -@@ -707,7 +739,11 @@ do_introspect (DBusConnection *connection, +@@ -670,7 +702,11 @@ do_introspect (DBusConnection *connection, /* interface */ xml = g_string_append (xml, " \n" @@ -1778,7 +1756,7 @@ index 1ab01e4..03ecfca 100644 " \n" " \n" " \n" -@@ -767,6 +803,7 @@ do_introspect (DBusConnection *connection, +@@ -727,6 +763,7 @@ do_introspect (DBusConnection *connection, " \n" " \n" " \n" @@ -1786,7 +1764,7 @@ index 1ab01e4..03ecfca 100644 " \n" " \n" " \n" -@@ -1131,6 +1168,16 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1091,6 +1128,16 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) "group name", GDM_GROUPNAME, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); @@ -1804,7 +1782,7 @@ index 1ab01e4..03ecfca 100644 g_signal_new ("begin-verification", G_OBJECT_CLASS_TYPE (object_class), diff --git a/daemon/gdm-greeter-server.h b/daemon/gdm-greeter-server.h -index f9c157f..7e2424a 100644 +index 7872201..d4fc9dd 100644 --- a/daemon/gdm-greeter-server.h +++ b/daemon/gdm-greeter-server.h @@ -45,6 +45,8 @@ typedef struct @@ -1816,7 +1794,7 @@ index f9c157f..7e2424a 100644 void (* begin_auto_login) (GdmGreeterServer *greeter_server); void (* begin_verification) (GdmGreeterServer *greeter_server); void (* begin_verification_for_user)(GdmGreeterServer *greeter_server, -@@ -86,7 +88,8 @@ gboolean gdm_greeter_server_problem (GdmGreeterServer * +@@ -84,7 +86,8 @@ gboolean gdm_greeter_server_problem (GdmGreeterServer * const char *text); gboolean gdm_greeter_server_authentication_failed (GdmGreeterServer *greeter_server); gboolean gdm_greeter_server_reset (GdmGreeterServer *greeter_server); @@ -1827,7 +1805,7 @@ index f9c157f..7e2424a 100644 const char *text); void gdm_greeter_server_default_language_name_changed (GdmGreeterServer *greeter_server, diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 1cad6ad..0b60ef7 100644 +index 88ea9d0..a5b6e9c 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -616,6 +616,7 @@ on_session_secret_info_query (GdmSession *session, @@ -1860,7 +1838,7 @@ index 1cad6ad..0b60ef7 100644 username); } -@@ -698,6 +702,21 @@ on_default_session_name_changed (GdmSession *session, +@@ -686,6 +690,21 @@ on_default_session_name_changed (GdmSession *session, } static void @@ -1882,7 +1860,7 @@ index 1cad6ad..0b60ef7 100644 create_new_session (GdmSimpleSlave *slave) { gboolean display_is_local; -@@ -838,6 +857,8 @@ create_new_session (GdmSimpleSlave *slave) +@@ -821,6 +840,8 @@ create_new_session (GdmSimpleSlave *slave) "default-session-name-changed", G_CALLBACK (on_default_session_name_changed), slave); @@ -1891,7 +1869,7 @@ index 1cad6ad..0b60ef7 100644 } static void -@@ -967,6 +988,16 @@ on_greeter_session_died (GdmGreeterSession *greeter, +@@ -946,6 +967,16 @@ on_greeter_session_died (GdmGreeterSession *greeter, } static void @@ -1908,7 +1886,7 @@ index 1cad6ad..0b60ef7 100644 on_greeter_begin_verification (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { -@@ -1144,6 +1175,10 @@ start_greeter (GdmSimpleSlave *slave) +@@ -1115,6 +1146,10 @@ start_greeter (GdmSimpleSlave *slave) slave->priv->greeter_server = gdm_greeter_server_new (display_id); g_signal_connect (slave->priv->greeter_server, @@ -1920,10 +1898,10 @@ index 1cad6ad..0b60ef7 100644 G_CALLBACK (on_greeter_begin_auto_login), slave); diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c -index d02b3d1..b175fc9 100644 +index 10ba236..ae61eb1 100644 --- a/gui/simple-greeter/gdm-greeter-client.c +++ b/gui/simple-greeter/gdm-greeter-client.c -@@ -238,11 +238,7 @@ static void +@@ -230,11 +230,7 @@ static void on_ready (GdmGreeterClient *client, DBusMessage *message) { @@ -1936,7 +1914,7 @@ index d02b3d1..b175fc9 100644 } static void -@@ -412,6 +408,14 @@ send_dbus_void_method (DBusConnection *connection, +@@ -404,6 +400,14 @@ send_dbus_void_method (DBusConnection *connection, } void @@ -1951,7 +1929,7 @@ index d02b3d1..b175fc9 100644 gdm_greeter_client_call_begin_auto_login (GdmGreeterClient *client, const char *username) { -@@ -893,9 +897,9 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -875,9 +879,9 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, ready), NULL, NULL, @@ -1964,10 +1942,10 @@ index d02b3d1..b175fc9 100644 gdm_greeter_client_signals[RESET] = g_signal_new ("reset", diff --git a/gui/simple-greeter/gdm-greeter-client.h b/gui/simple-greeter/gdm-greeter-client.h -index 16ccef9..e08aaa5 100644 +index 7938046..5f92abe 100644 --- a/gui/simple-greeter/gdm-greeter-client.h +++ b/gui/simple-greeter/gdm-greeter-client.h -@@ -85,13 +85,15 @@ GQuark gdm_greeter_client_error_quark (void); +@@ -83,13 +83,15 @@ GQuark gdm_greeter_client_error_quark (void); GdmGreeterClient * gdm_greeter_client_new (void); gboolean gdm_greeter_client_start (GdmGreeterClient *client, @@ -1985,7 +1963,7 @@ index 16ccef9..e08aaa5 100644 const char *username); void gdm_greeter_client_call_begin_verification (GdmGreeterClient *client); diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c -index d4ef77f..63de620 100644 +index 3225105..d1d2341 100644 --- a/gui/simple-greeter/gdm-greeter-session.c +++ b/gui/simple-greeter/gdm-greeter-session.c @@ -89,6 +89,7 @@ on_problem (GdmGreeterClient *client, @@ -1996,15 +1974,15 @@ index d4ef77f..63de620 100644 GdmGreeterSession *session) { g_debug ("GdmGreeterSession: Ready"); -@@ -293,6 +294,7 @@ on_cancelled (GdmGreeterLoginWindow *login_window, +@@ -268,6 +269,7 @@ on_cancelled (GdmGreeterLoginWindow *login_window, + GdmGreeterSession *session) { - gdm_greeter_panel_hide_user_options (GDM_GREETER_PANEL (session->priv->panel)); gdm_greeter_client_call_cancel (session->priv->client); + gdm_greeter_client_call_start_conversation (session->priv->client, "gdm"); } static void -@@ -457,6 +459,8 @@ gdm_greeter_session_start (GdmGreeterSession *session, +@@ -427,6 +429,8 @@ gdm_greeter_session_start (GdmGreeterSession *session, toggle_panel (session, TRUE); toggle_login_window (session, TRUE); @@ -2014,10 +1992,10 @@ index d4ef77f..63de620 100644 return res; -- -1.7.3.3 +1.7.3.5 -From 7a11766a320ce024301f1cb63169729b33f79793 Mon Sep 17 00:00:00 2001 +From 9a22e67e8af3ca7c1f9b156ce34ddc8b374438eb Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 16 Jan 2009 15:18:31 -0500 Subject: [PATCH 10/35] Store multiple conversations in the session @@ -2029,8 +2007,8 @@ only operate on the first conversation added though. daemon/gdm-factory-slave.c | 69 +++- daemon/gdm-greeter-server.c | 134 ++++++-- daemon/gdm-greeter-server.h | 19 +- - daemon/gdm-product-slave.c | 264 +++++++++++--- - daemon/gdm-session-direct.c | 585 ++++++++++++++++++++---------- + daemon/gdm-product-slave.c | 264 ++++++++++++--- + daemon/gdm-session-direct.c | 564 ++++++++++++++++++++---------- daemon/gdm-session-private.h | 28 ++- daemon/gdm-session-relay.c | 135 ++++++-- daemon/gdm-session-worker.c | 27 ++ @@ -2041,10 +2019,10 @@ only operate on the first conversation added though. gui/simple-greeter/gdm-greeter-client.c | 188 ++++++++-- gui/simple-greeter/gdm-greeter-client.h | 16 +- gui/simple-greeter/gdm-greeter-session.c | 11 +- - 15 files changed, 1394 insertions(+), 481 deletions(-) + 15 files changed, 1380 insertions(+), 474 deletions(-) diff --git a/daemon/gdm-factory-slave.c b/daemon/gdm-factory-slave.c -index f30664f..653cb18 100644 +index 9bae550..9e435f9 100644 --- a/daemon/gdm-factory-slave.c +++ b/daemon/gdm-factory-slave.c @@ -144,45 +144,49 @@ on_greeter_session_died (GdmGreeterSession *greeter, @@ -2279,7 +2257,7 @@ index f30664f..653cb18 100644 } static void -@@ -520,6 +545,10 @@ run_greeter (GdmFactorySlave *slave) +@@ -512,6 +537,10 @@ run_greeter (GdmFactorySlave *slave) slave->priv->greeter_server = gdm_greeter_server_new (display_id); g_signal_connect (slave->priv->greeter_server, @@ -2291,7 +2269,7 @@ index f30664f..653cb18 100644 G_CALLBACK (on_greeter_begin_verification), slave); diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c -index 03ecfca..50e4193 100644 +index 463ba6a..d9ecb1f 100644 --- a/daemon/gdm-greeter-server.c +++ b/daemon/gdm-greeter-server.c @@ -44,6 +44,7 @@ @@ -2302,7 +2280,7 @@ index 03ecfca..50e4193 100644 #include "gdm-greeter-server.h" #define GDM_GREETER_SERVER_DBUS_PATH "/org/gnome/DisplayManager/GreeterServer" -@@ -157,6 +158,46 @@ send_dbus_string_and_int_signal (GdmGreeterServer *greeter_server, +@@ -156,6 +157,46 @@ send_dbus_string_and_int_signal (GdmGreeterServer *greeter_server, } static void @@ -2349,7 +2327,7 @@ index 03ecfca..50e4193 100644 send_dbus_string_signal (GdmGreeterServer *greeter_server, const char *name, const char *text) -@@ -209,34 +250,38 @@ send_dbus_void_signal (GdmGreeterServer *greeter_server, +@@ -208,34 +249,38 @@ send_dbus_void_signal (GdmGreeterServer *greeter_server, gboolean gdm_greeter_server_info_query (GdmGreeterServer *greeter_server, @@ -2392,7 +2370,7 @@ index 03ecfca..50e4193 100644 return TRUE; } -@@ -262,6 +307,14 @@ gdm_greeter_server_ready (GdmGreeterServer *greeter_server, +@@ -261,6 +306,14 @@ gdm_greeter_server_ready (GdmGreeterServer *greeter_server, return TRUE; } @@ -2407,7 +2385,7 @@ index 03ecfca..50e4193 100644 void gdm_greeter_server_selected_user_changed (GdmGreeterServer *greeter_server, const char *username) -@@ -299,9 +352,10 @@ gdm_greeter_server_request_timed_login (GdmGreeterServer *greeter_server, +@@ -291,9 +344,10 @@ gdm_greeter_server_request_timed_login (GdmGreeterServer *greeter_server, } void @@ -2420,7 +2398,7 @@ index 03ecfca..50e4193 100644 } /* Note: Use abstract sockets like dbus does by default on Linux. Abstract -@@ -366,6 +420,16 @@ handle_begin_verification (GdmGreeterServer *greeter_server, +@@ -358,6 +412,16 @@ handle_begin_verification (GdmGreeterServer *greeter_server, DBusMessage *message) { DBusMessage *reply; @@ -2437,7 +2415,7 @@ index 03ecfca..50e4193 100644 g_debug ("GreeterServer: BeginVerification"); -@@ -373,7 +437,7 @@ handle_begin_verification (GdmGreeterServer *greeter_server, +@@ -365,7 +429,7 @@ handle_begin_verification (GdmGreeterServer *greeter_server, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -2446,7 +2424,7 @@ index 03ecfca..50e4193 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -387,7 +451,6 @@ handle_begin_auto_login (GdmGreeterServer *greeter_server, +@@ -379,7 +443,6 @@ handle_begin_auto_login (GdmGreeterServer *greeter_server, DBusError error; const char *text; @@ -2454,7 +2432,7 @@ index 03ecfca..50e4193 100644 dbus_error_init (&error); if (! dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &text, -@@ -414,13 +477,16 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server, +@@ -406,13 +469,16 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server, DBusMessage *reply; DBusError error; const char *text; @@ -2471,7 +2449,7 @@ index 03ecfca..50e4193 100644 g_debug ("GreeterServer: BeginVerificationForUser for '%s'", text); -@@ -428,7 +494,7 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server, +@@ -420,7 +486,7 @@ handle_begin_verification_for_user (GdmGreeterServer *greeter_server, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -2480,7 +2458,7 @@ index 03ecfca..50e4193 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -441,13 +507,16 @@ handle_answer_query (GdmGreeterServer *greeter_server, +@@ -433,13 +499,16 @@ handle_answer_query (GdmGreeterServer *greeter_server, DBusMessage *reply; DBusError error; const char *text; @@ -2497,7 +2475,7 @@ index 03ecfca..50e4193 100644 g_debug ("GreeterServer: AnswerQuery"); -@@ -455,7 +524,7 @@ handle_answer_query (GdmGreeterServer *greeter_server, +@@ -447,7 +516,7 @@ handle_answer_query (GdmGreeterServer *greeter_server, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -2506,7 +2484,7 @@ index 03ecfca..50e4193 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -652,9 +721,11 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server, +@@ -617,9 +686,11 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server, DBusMessage *reply; DBusError error; gboolean should_start_session; @@ -2518,7 +2496,7 @@ index 03ecfca..50e4193 100644 DBUS_TYPE_BOOLEAN, &should_start_session, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -668,9 +739,9 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server, +@@ -633,9 +704,9 @@ handle_start_session_when_ready (GdmGreeterServer *greeter_server, dbus_message_unref (reply); if (should_start_session) { @@ -2530,7 +2508,7 @@ index 03ecfca..50e4193 100644 } return DBUS_HANDLER_RESULT_HANDLED; -@@ -742,14 +813,20 @@ do_introspect (DBusConnection *connection, +@@ -705,14 +776,20 @@ do_introspect (DBusConnection *connection, " \n" " \n" " \n" @@ -2551,7 +2529,7 @@ index 03ecfca..50e4193 100644 " \n" " \n" " \n" -@@ -772,18 +849,23 @@ do_introspect (DBusConnection *connection, +@@ -735,18 +812,23 @@ do_introspect (DBusConnection *connection, " \n" " \n" " \n" @@ -2575,7 +2553,7 @@ index 03ecfca..50e4193 100644 " \n" " \n" " \n" -@@ -805,11 +887,15 @@ do_introspect (DBusConnection *connection, +@@ -765,11 +847,15 @@ do_introspect (DBusConnection *connection, " \n" " \n" " \n" @@ -2591,7 +2569,7 @@ index 03ecfca..50e4193 100644 " \n" " \n"); -@@ -1185,9 +1271,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1145,9 +1231,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) G_STRUCT_OFFSET (GdmGreeterServerClass, begin_verification), NULL, NULL, @@ -2603,7 +2581,7 @@ index 03ecfca..50e4193 100644 signals [BEGIN_AUTO_LOGIN] = g_signal_new ("begin-auto-login", G_OBJECT_CLASS_TYPE (object_class), -@@ -1206,10 +1292,10 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1166,10 +1252,10 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) G_STRUCT_OFFSET (GdmGreeterServerClass, begin_verification_for_user), NULL, NULL, @@ -2617,7 +2595,7 @@ index 03ecfca..50e4193 100644 signals [QUERY_ANSWER] = g_signal_new ("query-answer", G_OBJECT_CLASS_TYPE (object_class), -@@ -1217,10 +1303,10 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1177,10 +1263,10 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) G_STRUCT_OFFSET (GdmGreeterServerClass, query_answer), NULL, NULL, @@ -2631,7 +2609,7 @@ index 03ecfca..50e4193 100644 signals [SESSION_SELECTED] = g_signal_new ("session-selected", G_OBJECT_CLASS_TYPE (object_class), -@@ -1314,9 +1400,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1263,9 +1349,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) G_STRUCT_OFFSET (GdmGreeterServerClass, start_session_when_ready), NULL, NULL, @@ -2643,7 +2621,7 @@ index 03ecfca..50e4193 100644 signals [START_SESSION_LATER] = g_signal_new ("start-session-later", -@@ -1325,9 +1411,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) +@@ -1274,9 +1360,9 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) G_STRUCT_OFFSET (GdmGreeterServerClass, start_session_later), NULL, NULL, @@ -2656,7 +2634,7 @@ index 03ecfca..50e4193 100644 static void diff --git a/daemon/gdm-greeter-server.h b/daemon/gdm-greeter-server.h -index 7e2424a..5af32fd 100644 +index d4fc9dd..9015c26 100644 --- a/daemon/gdm-greeter-server.h +++ b/daemon/gdm-greeter-server.h @@ -48,10 +48,13 @@ typedef struct @@ -2674,7 +2652,7 @@ index 7e2424a..5af32fd 100644 const char *text); void (* session_selected) (GdmGreeterServer *greeter_server, const char *name); -@@ -66,7 +69,8 @@ typedef struct +@@ -64,7 +67,8 @@ typedef struct void (* cancelled) (GdmGreeterServer *greeter_server); void (* connected) (GdmGreeterServer *greeter_server); void (* disconnected) (GdmGreeterServer *greeter_server); @@ -2684,7 +2662,7 @@ index 7e2424a..5af32fd 100644 void (* start_session_later) (GdmGreeterServer *greeter_server); } GdmGreeterServerClass; -@@ -77,19 +81,24 @@ gboolean gdm_greeter_server_start (GdmGreeterServer * +@@ -75,19 +79,24 @@ gboolean gdm_greeter_server_start (GdmGreeterServer * gboolean gdm_greeter_server_stop (GdmGreeterServer *greeter_server); char * gdm_greeter_server_get_address (GdmGreeterServer *greeter_server); @@ -2710,7 +2688,7 @@ index 7e2424a..5af32fd 100644 void gdm_greeter_server_selected_user_changed (GdmGreeterServer *greeter_server, const char *text); void gdm_greeter_server_default_language_name_changed (GdmGreeterServer *greeter_server, -@@ -102,8 +111,8 @@ void gdm_greeter_server_default_session_name_changed (GdmGreeterS +@@ -98,8 +107,8 @@ void gdm_greeter_server_default_session_name_changed (GdmGreeterS void gdm_greeter_server_request_timed_login (GdmGreeterServer *greeter_server, const char *username, int delay); @@ -2722,7 +2700,7 @@ index 7e2424a..5af32fd 100644 G_END_DECLS diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c -index 9be89b4..607bbc6 100644 +index 84d5c49..af1c480 100644 --- a/daemon/gdm-product-slave.c +++ b/daemon/gdm-product-slave.c @@ -79,6 +79,8 @@ struct GdmProductSlavePrivate @@ -3100,7 +3078,7 @@ index 9be89b4..607bbc6 100644 } else { g_warning ("Unable to get arguments: %s", error.message); dbus_error_free (&error); -@@ -831,14 +973,48 @@ static void +@@ -809,14 +951,48 @@ static void on_relay_open_session (GdmProductSlave *slave, DBusMessage *message) { @@ -3152,10 +3130,10 @@ index 9be89b4..607bbc6 100644 static void diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index 87e38d3..680c0f0 100644 +index 5b30ecd..f91eff3 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c -@@ -89,9 +89,10 @@ struct _GdmSessionDirectPrivate +@@ -87,9 +87,10 @@ struct _GdmSessionDirectPrivate char *selected_user; char *user_x11_authority_file; @@ -3168,7 +3146,7 @@ index 87e38d3..680c0f0 100644 GPid session_pid; guint32 is_running : 1; -@@ -200,14 +201,30 @@ send_dbus_void_signal (GdmSessionConversation *conversation, +@@ -198,14 +199,30 @@ send_dbus_void_signal (GdmSessionConversation *conversation, dbus_message_unref (message); } @@ -3200,7 +3178,7 @@ index 87e38d3..680c0f0 100644 if (conversation != NULL) { gdm_session_record_failed (conversation->worker_pid, impl->priv->selected_user, -@@ -218,12 +235,13 @@ on_authentication_failed (GdmSession *session, +@@ -216,12 +233,13 @@ on_authentication_failed (GdmSession *session, } static void @@ -3216,7 +3194,7 @@ index 87e38d3..680c0f0 100644 if (conversation != NULL) { gdm_session_record_login (conversation->worker_pid, impl->priv->selected_user, -@@ -235,12 +253,13 @@ on_session_started (GdmSession *session) +@@ -233,12 +251,13 @@ on_session_started (GdmSession *session) static void on_session_start_failed (GdmSession *session, @@ -3231,7 +3209,7 @@ index 87e38d3..680c0f0 100644 if (conversation != NULL) { gdm_session_record_login (conversation->worker_pid, impl->priv->selected_user, -@@ -265,7 +284,7 @@ on_session_exited (GdmSession *session, +@@ -263,7 +282,7 @@ on_session_exited (GdmSession *session, static DBusHandlerResult gdm_session_direct_handle_setup_complete (GdmSessionDirect *session, @@ -3240,7 +3218,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -273,17 +292,17 @@ gdm_session_direct_handle_setup_complete (GdmSessionDirect *session, +@@ -271,17 +290,17 @@ gdm_session_direct_handle_setup_complete (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'setup-complete' signal"); reply = dbus_message_new_method_return (message); @@ -3261,7 +3239,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -298,12 +317,12 @@ gdm_session_direct_handle_setup_failed (GdmSessionDirect *session, +@@ -296,12 +315,12 @@ gdm_session_direct_handle_setup_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3276,7 +3254,7 @@ index 87e38d3..680c0f0 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -311,7 +330,7 @@ gdm_session_direct_handle_setup_failed (GdmSessionDirect *session, +@@ -309,7 +328,7 @@ gdm_session_direct_handle_setup_failed (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_reset_complete (GdmSessionDirect *session, @@ -3285,7 +3263,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -319,7 +338,7 @@ gdm_session_direct_handle_reset_complete (GdmSessionDirect *session, +@@ -317,7 +336,7 @@ gdm_session_direct_handle_reset_complete (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'reset-complete' signal"); reply = dbus_message_new_method_return (message); @@ -3294,7 +3272,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); _gdm_session_reset_complete (GDM_SESSION (session)); -@@ -329,7 +348,7 @@ gdm_session_direct_handle_reset_complete (GdmSessionDirect *session, +@@ -327,7 +346,7 @@ gdm_session_direct_handle_reset_complete (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_reset_failed (GdmSessionDirect *session, @@ -3303,7 +3281,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -344,7 +363,7 @@ gdm_session_direct_handle_reset_failed (GdmSessionDirect *session, +@@ -342,7 +361,7 @@ gdm_session_direct_handle_reset_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3312,7 +3290,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); g_debug ("GdmSessionDirect: Emitting 'reset-failed' signal"); -@@ -356,7 +375,7 @@ gdm_session_direct_handle_reset_failed (GdmSessionDirect *session, +@@ -354,7 +373,7 @@ gdm_session_direct_handle_reset_failed (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_authenticated (GdmSessionDirect *session, @@ -3321,7 +3299,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -364,17 +383,17 @@ gdm_session_direct_handle_authenticated (GdmSessionDirect *session, +@@ -362,17 +381,17 @@ gdm_session_direct_handle_authenticated (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'authenticated' signal"); reply = dbus_message_new_method_return (message); @@ -3342,7 +3320,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -389,19 +408,19 @@ gdm_session_direct_handle_authentication_failed (GdmSessionDirect *session, +@@ -387,19 +406,19 @@ gdm_session_direct_handle_authentication_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3365,7 +3343,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -409,17 +428,17 @@ gdm_session_direct_handle_authorized (GdmSessionDirect *session, +@@ -407,17 +426,17 @@ gdm_session_direct_handle_authorized (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'authorized' signal"); reply = dbus_message_new_method_return (message); @@ -3386,7 +3364,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -434,19 +453,19 @@ gdm_session_direct_handle_authorization_failed (GdmSessionDirect *session, +@@ -432,19 +451,19 @@ gdm_session_direct_handle_authorization_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3409,7 +3387,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -454,17 +473,17 @@ gdm_session_direct_handle_accredited (GdmSessionDirect *session, +@@ -452,17 +471,17 @@ gdm_session_direct_handle_accredited (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'accredited' signal"); reply = dbus_message_new_method_return (message); @@ -3430,7 +3408,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -479,12 +498,12 @@ gdm_session_direct_handle_accreditation_failed (GdmSessionDirect *session, +@@ -477,12 +496,12 @@ gdm_session_direct_handle_accreditation_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3445,7 +3423,7 @@ index 87e38d3..680c0f0 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -808,7 +827,7 @@ gdm_session_direct_select_user (GdmSession *session, +@@ -758,7 +777,7 @@ gdm_session_direct_select_user (GdmSession *session, static DBusHandlerResult gdm_session_direct_handle_username_changed (GdmSessionDirect *session, @@ -3454,7 +3432,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -823,7 +842,7 @@ gdm_session_direct_handle_username_changed (GdmSessionDirect *session, +@@ -773,7 +792,7 @@ gdm_session_direct_handle_username_changed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3463,7 +3441,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); g_debug ("GdmSessionDirect: changing username from '%s' to '%s'", -@@ -890,14 +909,11 @@ set_pending_query (GdmSessionConversation *conversation, +@@ -840,14 +859,11 @@ set_pending_query (GdmSessionConversation *conversation, static DBusHandlerResult gdm_session_direct_handle_info_query (GdmSessionDirect *session, @@ -3479,7 +3457,7 @@ index 87e38d3..680c0f0 100644 dbus_error_init (&error); if (! dbus_message_get_args (message, &error, -@@ -909,21 +925,18 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, +@@ -859,21 +875,18 @@ gdm_session_direct_handle_info_query (GdmSessionDirect *session, set_pending_query (conversation, message); g_debug ("GdmSessionDirect: Emitting 'info-query' signal"); @@ -3503,7 +3481,7 @@ index 87e38d3..680c0f0 100644 dbus_error_init (&error); if (! dbus_message_get_args (message, &error, -@@ -935,14 +948,14 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, +@@ -885,14 +898,14 @@ gdm_session_direct_handle_secret_info_query (GdmSessionDirect *session, set_pending_query (conversation, message); g_debug ("GdmSessionDirect: Emitting 'secret-info-query' signal"); @@ -3520,7 +3498,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -957,31 +970,28 @@ gdm_session_direct_handle_info (GdmSessionDirect *session, +@@ -907,31 +920,28 @@ gdm_session_direct_handle_info (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3556,7 +3534,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); return DBUS_HANDLER_RESULT_HANDLED; -@@ -989,7 +999,7 @@ gdm_session_direct_handle_cancel_pending_query (GdmSessionDirect *session, +@@ -939,7 +949,7 @@ gdm_session_direct_handle_cancel_pending_query (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_problem (GdmSessionDirect *session, @@ -3565,7 +3543,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1004,18 +1014,18 @@ gdm_session_direct_handle_problem (GdmSessionDirect *session, +@@ -954,18 +964,18 @@ gdm_session_direct_handle_problem (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3587,7 +3565,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1030,10 +1040,10 @@ gdm_session_direct_handle_session_opened (GdmSessionDirect *session, +@@ -980,10 +990,10 @@ gdm_session_direct_handle_session_opened (GdmSessionDirect *session, g_debug ("GdmSessionDirect: Emitting 'session-opened' signal"); @@ -3600,7 +3578,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); return DBUS_HANDLER_RESULT_HANDLED; -@@ -1041,7 +1051,7 @@ gdm_session_direct_handle_session_opened (GdmSessionDirect *session, +@@ -991,7 +1001,7 @@ gdm_session_direct_handle_session_opened (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_open_failed (GdmSessionDirect *session, @@ -3609,7 +3587,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1056,18 +1066,18 @@ gdm_session_direct_handle_open_failed (GdmSessionDirect *session, +@@ -1006,18 +1016,18 @@ gdm_session_direct_handle_open_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3631,7 +3609,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1086,7 +1096,7 @@ gdm_session_direct_handle_session_started (GdmSessionDirect *session, +@@ -1036,7 +1046,7 @@ gdm_session_direct_handle_session_started (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3640,7 +3618,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); g_debug ("GdmSessionDirect: Emitting 'session-started' signal with pid '%d'", -@@ -1095,14 +1105,14 @@ gdm_session_direct_handle_session_started (GdmSessionDirect *session, +@@ -1045,14 +1055,14 @@ gdm_session_direct_handle_session_started (GdmSessionDirect *session, session->priv->session_pid = pid; session->priv->is_running = TRUE; @@ -3657,7 +3635,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1117,18 +1127,18 @@ gdm_session_direct_handle_start_failed (GdmSessionDirect *session, +@@ -1067,18 +1077,18 @@ gdm_session_direct_handle_start_failed (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3679,7 +3657,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1143,7 +1153,7 @@ gdm_session_direct_handle_session_exited (GdmSessionDirect *session, +@@ -1093,7 +1103,7 @@ gdm_session_direct_handle_session_exited (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3688,7 +3666,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); g_debug ("GdmSessionDirect: Emitting 'session-exited' signal with exit code '%d'", -@@ -1157,7 +1167,7 @@ gdm_session_direct_handle_session_exited (GdmSessionDirect *session, +@@ -1107,7 +1117,7 @@ gdm_session_direct_handle_session_exited (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_session_died (GdmSessionDirect *session, @@ -3697,7 +3675,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1172,7 +1182,7 @@ gdm_session_direct_handle_session_died (GdmSessionDirect *session, +@@ -1122,7 +1132,7 @@ gdm_session_direct_handle_session_died (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3706,7 +3684,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); g_debug ("GdmSessionDirect: Emitting 'session-died' signal with signal number '%d'", -@@ -1186,7 +1196,7 @@ gdm_session_direct_handle_session_died (GdmSessionDirect *session, +@@ -1136,7 +1146,7 @@ gdm_session_direct_handle_session_died (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_saved_language_name_read (GdmSessionDirect *session, @@ -3715,7 +3693,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1201,7 +1211,7 @@ gdm_session_direct_handle_saved_language_name_read (GdmSessionDirect *session, +@@ -1151,7 +1161,7 @@ gdm_session_direct_handle_saved_language_name_read (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3724,25 +3702,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); if (strcmp (language_name, -@@ -1219,7 +1229,7 @@ gdm_session_direct_handle_saved_language_name_read (GdmSessionDirect *session, - - static DBusHandlerResult - gdm_session_direct_handle_saved_layout_name_read (GdmSessionDirect *session, -- DBusConnection *connection, -+ GdmSessionConversation *conversation, - DBusMessage *message) - { - DBusMessage *reply; -@@ -1234,7 +1244,7 @@ gdm_session_direct_handle_saved_layout_name_read (GdmSessionDirect *session, - } - - reply = dbus_message_new_method_return (message); -- dbus_connection_send (connection, reply, NULL); -+ dbus_connection_send (conversation->worker_connection, reply, NULL); - dbus_message_unref (reply); - - if (strcmp (layout_name, -@@ -1252,7 +1262,7 @@ gdm_session_direct_handle_saved_layout_name_read (GdmSessionDirect *session, +@@ -1169,7 +1179,7 @@ gdm_session_direct_handle_saved_language_name_read (GdmSessionDirect *session, static DBusHandlerResult gdm_session_direct_handle_saved_session_name_read (GdmSessionDirect *session, @@ -3751,7 +3711,7 @@ index 87e38d3..680c0f0 100644 DBusMessage *message) { DBusMessage *reply; -@@ -1267,7 +1277,7 @@ gdm_session_direct_handle_saved_session_name_read (GdmSessionDirect *session, +@@ -1184,7 +1194,7 @@ gdm_session_direct_handle_saved_session_name_read (GdmSessionDirect *session, } reply = dbus_message_new_method_return (message); @@ -3760,7 +3720,7 @@ index 87e38d3..680c0f0 100644 dbus_message_unref (reply); if (! get_session_command_for_name (session_name, NULL)) { -@@ -1295,58 +1305,61 @@ session_worker_message (DBusConnection *connection, +@@ -1212,56 +1222,59 @@ session_worker_message (DBusConnection *connection, DBusMessage *message, void *user_data) { @@ -3839,16 +3799,13 @@ index 87e38d3..680c0f0 100644 } else if (dbus_message_is_method_call (message, GDM_SESSION_DBUS_INTERFACE, "SavedLanguageNameRead")) { - return gdm_session_direct_handle_saved_language_name_read (session, connection, message); + return gdm_session_direct_handle_saved_language_name_read (session, conversation, message); - } else if (dbus_message_is_method_call (message, GDM_SESSION_DBUS_INTERFACE, "SavedLayoutNameRead")) { -- return gdm_session_direct_handle_saved_layout_name_read (session, connection, message); -+ return gdm_session_direct_handle_saved_layout_name_read (session, conversation, message); } else if (dbus_message_is_method_call (message, GDM_SESSION_DBUS_INTERFACE, "SavedSessionNameRead")) { - return gdm_session_direct_handle_saved_session_name_read (session, connection, message); + return gdm_session_direct_handle_saved_session_name_read (session, conversation, message); } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -@@ -1580,6 +1593,27 @@ session_unregister_handler (DBusConnection *connection, +@@ -1495,6 +1508,27 @@ session_unregister_handler (DBusConnection *connection, g_debug ("session_unregister_handler"); } @@ -3876,7 +3833,7 @@ index 87e38d3..680c0f0 100644 static dbus_bool_t allow_user_function (DBusConnection *connection, unsigned long uid, -@@ -1594,44 +1628,110 @@ allow_user_function (DBusConnection *connection, +@@ -1509,44 +1543,110 @@ allow_user_function (DBusConnection *connection, return FALSE; } @@ -3936,12 +3893,15 @@ index 87e38d3..680c0f0 100644 - &vtable, - session); + conversation = find_conversation_by_pid (session, (GPid) pid); -+ + +- g_debug ("GdmSessionDirect: Emitting conversation-started signal"); +- _gdm_session_conversation_started (GDM_SESSION (session), +- conversation->service_name); + if (conversation == NULL) { + g_warning ("GdmSessionDirect: New worker connection is from unknown source"); + dbus_connection_unref (connection); + return FALSE; -+ } + } + + conversation->worker_connection = connection; + @@ -3978,13 +3938,10 @@ index 87e38d3..680c0f0 100644 + } else { + reply = dbus_message_new_error (message, DBUS_ERROR_FAILED, ""); + } - -- g_debug ("GdmSessionDirect: Emitting conversation-started signal"); -- _gdm_session_conversation_started (GDM_SESSION (session), -- conversation->service_name); ++ + dbus_connection_send (connection, reply, NULL); + return DBUS_HANDLER_RESULT_HANDLED; - } ++ } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} @@ -4015,7 +3972,7 @@ index 87e38d3..680c0f0 100644 } static gboolean -@@ -1677,6 +1777,17 @@ setup_server (GdmSessionDirect *session) +@@ -1592,6 +1692,17 @@ setup_server (GdmSessionDirect *session) } static void @@ -4033,7 +3990,7 @@ index 87e38d3..680c0f0 100644 gdm_session_direct_init (GdmSessionDirect *session) { session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, -@@ -1700,6 +1811,11 @@ gdm_session_direct_init (GdmSessionDirect *session) +@@ -1615,6 +1726,11 @@ gdm_session_direct_init (GdmSessionDirect *session) G_CALLBACK (on_session_exited), NULL); @@ -4045,7 +4002,7 @@ index 87e38d3..680c0f0 100644 session->priv->environment = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, -@@ -1723,9 +1839,15 @@ worker_exited (GdmSessionWorkerJob *job, +@@ -1638,9 +1754,15 @@ worker_exited (GdmSessionWorkerJob *job, { g_debug ("GdmSessionDirect: Worker job exited: %d", code); @@ -4061,7 +4018,7 @@ index 87e38d3..680c0f0 100644 } static void -@@ -1735,9 +1857,15 @@ worker_died (GdmSessionWorkerJob *job, +@@ -1650,9 +1772,15 @@ worker_died (GdmSessionWorkerJob *job, { g_debug ("GdmSessionDirect: Worker job died: %d", signum); @@ -4077,7 +4034,7 @@ index 87e38d3..680c0f0 100644 } static GdmSessionConversation * -@@ -1799,17 +1927,21 @@ stop_conversation (GdmSessionConversation *conversation) +@@ -1714,17 +1842,21 @@ stop_conversation (GdmSessionConversation *conversation) G_CALLBACK (worker_died), conversation); @@ -4103,7 +4060,7 @@ index 87e38d3..680c0f0 100644 } static void -@@ -1817,12 +1949,35 @@ gdm_session_direct_start_conversation (GdmSession *session, +@@ -1732,12 +1864,35 @@ gdm_session_direct_start_conversation (GdmSession *session, const char *service_name) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -4140,7 +4097,7 @@ index 87e38d3..680c0f0 100644 } static void -@@ -1873,8 +2028,8 @@ send_setup (GdmSessionDirect *session, +@@ -1788,8 +1943,8 @@ send_setup (GdmSessionDirect *session, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_hostname); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_x11_authority_file); @@ -4151,7 +4108,7 @@ index 87e38d3..680c0f0 100644 g_debug ("GdmSessionDirect: Could not send %s signal", "Setup"); } -@@ -1936,8 +2091,8 @@ send_setup_for_user (GdmSessionDirect *session, +@@ -1851,8 +2006,8 @@ send_setup_for_user (GdmSessionDirect *session, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_x11_authority_file); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &selected_user); @@ -4162,7 +4119,7 @@ index 87e38d3..680c0f0 100644 g_debug ("GdmSessionDirect: Could not send %s signal", "SetupForUser"); } -@@ -1951,8 +2106,6 @@ gdm_session_direct_setup (GdmSession *session, +@@ -1866,8 +2021,6 @@ gdm_session_direct_setup (GdmSession *session, GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); g_return_if_fail (session != NULL); @@ -4171,7 +4128,7 @@ index 87e38d3..680c0f0 100644 send_setup (impl, service_name); gdm_session_direct_defaults_changed (impl); -@@ -1966,8 +2119,6 @@ gdm_session_direct_setup_for_user (GdmSession *session, +@@ -1881,8 +2034,6 @@ gdm_session_direct_setup_for_user (GdmSession *session, GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); g_return_if_fail (session != NULL); @@ -4180,7 +4137,7 @@ index 87e38d3..680c0f0 100644 g_return_if_fail (username != NULL); gdm_session_direct_select_user (session, username); -@@ -1977,45 +2128,50 @@ gdm_session_direct_setup_for_user (GdmSession *session, +@@ -1892,45 +2043,50 @@ gdm_session_direct_setup_for_user (GdmSession *session, } static void @@ -4244,7 +4201,7 @@ index 87e38d3..680c0f0 100644 switch (cred_flag) { case GDM_SESSION_CRED_ESTABLISH: send_dbus_void_signal (conversation, "EstablishCredentials"); -@@ -2029,13 +2185,12 @@ gdm_session_direct_accredit (GdmSession *session, +@@ -1944,13 +2100,12 @@ gdm_session_direct_accredit (GdmSession *session, } static void @@ -4261,7 +4218,7 @@ index 87e38d3..680c0f0 100644 message = dbus_message_new_signal (GDM_SESSION_DBUS_PATH, GDM_SESSION_DBUS_INTERFACE, -@@ -2045,7 +2200,6 @@ send_environment_variable (const char *key, +@@ -1960,7 +2115,6 @@ send_environment_variable (const char *key, dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &key); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &value); @@ -4269,7 +4226,7 @@ index 87e38d3..680c0f0 100644 if (! send_dbus_message (conversation, message)) { g_debug ("GdmSessionDirect: Could not send %s signal", "SetEnvironmentVariable"); } -@@ -2054,12 +2208,13 @@ send_environment_variable (const char *key, +@@ -1969,12 +2123,13 @@ send_environment_variable (const char *key, } static void @@ -4285,7 +4242,7 @@ index 87e38d3..680c0f0 100644 } static const char * -@@ -2181,17 +2336,22 @@ setup_session_environment (GdmSessionDirect *session) +@@ -2079,17 +2234,22 @@ setup_session_environment (GdmSessionDirect *session) } static void @@ -4311,7 +4268,7 @@ index 87e38d3..680c0f0 100644 { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); GdmSessionConversation *conversation; -@@ -2211,15 +2371,38 @@ gdm_session_direct_start_session (GdmSession *session) +@@ -2109,15 +2269,38 @@ gdm_session_direct_start_session (GdmSession *session) g_free (command); @@ -4352,7 +4309,7 @@ index 87e38d3..680c0f0 100644 gdm_session_direct_close (GdmSession *session) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); -@@ -2236,6 +2419,13 @@ gdm_session_direct_close (GdmSession *session) +@@ -2134,6 +2317,13 @@ gdm_session_direct_close (GdmSession *session) impl->priv->display_device); } @@ -4366,7 +4323,7 @@ index 87e38d3..680c0f0 100644 g_free (impl->priv->selected_user); impl->priv->selected_user = NULL; -@@ -2268,6 +2458,7 @@ gdm_session_direct_close (GdmSession *session) +@@ -2160,6 +2350,7 @@ gdm_session_direct_close (GdmSession *session) static void gdm_session_direct_answer_query (GdmSession *session, @@ -4374,7 +4331,7 @@ index 87e38d3..680c0f0 100644 const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); -@@ -2275,7 +2466,7 @@ gdm_session_direct_answer_query (GdmSession *session, +@@ -2167,7 +2358,7 @@ gdm_session_direct_answer_query (GdmSession *session, g_return_if_fail (session != NULL); @@ -4383,7 +4340,7 @@ index 87e38d3..680c0f0 100644 answer_pending_query (conversation, text); } -@@ -2283,11 +2474,9 @@ gdm_session_direct_answer_query (GdmSession *session, +@@ -2175,11 +2366,9 @@ gdm_session_direct_answer_query (GdmSession *session, static void gdm_session_direct_cancel (GdmSession *session) { @@ -4396,7 +4353,7 @@ index 87e38d3..680c0f0 100644 } char * -@@ -2359,7 +2548,8 @@ gdm_session_direct_select_session (GdmSession *session, +@@ -2251,7 +2440,8 @@ gdm_session_direct_select_session (GdmSession *session, const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -4406,7 +4363,7 @@ index 87e38d3..680c0f0 100644 g_free (impl->priv->selected_session); -@@ -2369,9 +2559,15 @@ gdm_session_direct_select_session (GdmSession *session, +@@ -2261,9 +2451,15 @@ gdm_session_direct_select_session (GdmSession *session, impl->priv->selected_session = g_strdup (text); } @@ -4425,7 +4382,7 @@ index 87e38d3..680c0f0 100644 } static void -@@ -2379,7 +2575,8 @@ gdm_session_direct_select_language (GdmSession *session, +@@ -2271,7 +2467,8 @@ gdm_session_direct_select_language (GdmSession *session, const char *text) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -4435,7 +4392,7 @@ index 87e38d3..680c0f0 100644 g_free (impl->priv->selected_language); -@@ -2389,9 +2586,15 @@ gdm_session_direct_select_language (GdmSession *session, +@@ -2281,9 +2478,15 @@ gdm_session_direct_select_language (GdmSession *session, impl->priv->selected_language = g_strdup (text); } @@ -4454,36 +4411,7 @@ index 87e38d3..680c0f0 100644 } static void -@@ -2399,7 +2602,8 @@ gdm_session_direct_select_layout (GdmSession *session, - const char *text) - { - GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); -- GdmSessionConversation *conversation; -+ GHashTableIter iter; -+ gpointer key, value; - - g_free (impl->priv->selected_layout); - -@@ -2409,9 +2613,15 @@ gdm_session_direct_select_layout (GdmSession *session, - impl->priv->selected_layout = g_strdup (text); - } - -- conversation = impl->priv->conversation; -- send_dbus_string_signal (conversation, "SetLayoutName", -- get_layout_name (impl)); -+ g_hash_table_iter_init (&iter, impl->priv->conversations); -+ while (g_hash_table_iter_next (&iter, &key, &value)) { -+ GdmSessionConversation *conversation; -+ -+ conversation = (GdmSessionConversation *) value; -+ -+ send_dbus_string_signal (conversation, "SetLayoutName", -+ get_layout_name (impl)); -+ } - } - - static void -@@ -2673,6 +2883,7 @@ static void +@@ -2543,6 +2746,7 @@ static void gdm_session_iface_init (GdmSessionIface *iface) { iface->start_conversation = gdm_session_direct_start_conversation; @@ -4492,7 +4420,7 @@ index 87e38d3..680c0f0 100644 iface->setup_for_user = gdm_session_direct_setup_for_user; iface->authenticate = gdm_session_direct_authenticate; diff --git a/daemon/gdm-session-private.h b/daemon/gdm-session-private.h -index 74b6069..36781dd 100644 +index 34adff5..e15b7dd 100644 --- a/daemon/gdm-session-private.h +++ b/daemon/gdm-session-private.h @@ -29,27 +29,41 @@ G_BEGIN_DECLS @@ -4542,7 +4470,7 @@ index 74b6069..36781dd 100644 const char *message); void _gdm_session_session_exited (GdmSession *session, int exit_code); -@@ -70,12 +84,16 @@ void _gdm_session_selected_user_changed (GdmSession *sessio +@@ -68,12 +82,16 @@ void _gdm_session_selected_user_changed (GdmSession *sessio /* call and response stuff */ void _gdm_session_info_query (GdmSession *session, @@ -4560,7 +4488,7 @@ index 74b6069..36781dd 100644 G_END_DECLS diff --git a/daemon/gdm-session-relay.c b/daemon/gdm-session-relay.c -index a0b4cbf..98ccc51 100644 +index d559c71..50f1140 100644 --- a/daemon/gdm-session-relay.c +++ b/daemon/gdm-session-relay.c @@ -212,31 +212,34 @@ gdm_session_relay_setup_for_user (GdmSession *session, @@ -4628,7 +4556,7 @@ index a0b4cbf..98ccc51 100644 } static void -@@ -299,11 +304,12 @@ gdm_session_relay_cancel (GdmSession *session) +@@ -291,11 +296,12 @@ gdm_session_relay_cancel (GdmSession *session) } static void @@ -4643,7 +4571,7 @@ index a0b4cbf..98ccc51 100644 } /* Note: Use abstract sockets like dbus does by default on Linux. Abstract -@@ -341,10 +347,12 @@ handle_info_query (GdmSessionRelay *session_relay, +@@ -333,10 +339,12 @@ handle_info_query (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4657,7 +4585,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -356,7 +364,7 @@ handle_info_query (GdmSessionRelay *session_relay, +@@ -348,7 +356,7 @@ handle_info_query (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4666,7 +4594,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -368,12 +376,14 @@ handle_secret_info_query (GdmSessionRelay *session_relay, +@@ -360,12 +368,14 @@ handle_secret_info_query (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4682,7 +4610,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -385,7 +395,7 @@ handle_secret_info_query (GdmSessionRelay *session_relay, +@@ -377,7 +387,7 @@ handle_secret_info_query (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4691,7 +4619,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -397,12 +407,14 @@ handle_info (GdmSessionRelay *session_relay, +@@ -389,12 +399,14 @@ handle_info (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4707,7 +4635,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -414,7 +426,7 @@ handle_info (GdmSessionRelay *session_relay, +@@ -406,7 +418,7 @@ handle_info (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4716,7 +4644,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -426,12 +438,14 @@ handle_problem (GdmSessionRelay *session_relay, +@@ -418,12 +430,14 @@ handle_problem (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4732,7 +4660,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -443,7 +457,7 @@ handle_problem (GdmSessionRelay *session_relay, +@@ -435,7 +449,7 @@ handle_problem (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4741,7 +4669,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -455,8 +469,15 @@ handle_setup_complete (GdmSessionRelay *session_relay, +@@ -447,8 +461,15 @@ handle_setup_complete (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4757,7 +4685,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: SetupComplete"); -@@ -464,7 +485,7 @@ handle_setup_complete (GdmSessionRelay *session_relay, +@@ -456,7 +477,7 @@ handle_setup_complete (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4766,7 +4694,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -476,8 +497,15 @@ handle_setup_failed (GdmSessionRelay *session_relay, +@@ -468,8 +489,15 @@ handle_setup_failed (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4782,7 +4710,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: SetupFailed"); -@@ -485,7 +513,7 @@ handle_setup_failed (GdmSessionRelay *session_relay, +@@ -477,7 +505,7 @@ handle_setup_failed (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4791,7 +4719,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -498,8 +526,15 @@ handle_authenticated (GdmSessionRelay *session_relay, +@@ -490,8 +518,15 @@ handle_authenticated (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4807,7 +4735,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: Authenticated"); -@@ -507,7 +542,7 @@ handle_authenticated (GdmSessionRelay *session_relay, +@@ -499,7 +534,7 @@ handle_authenticated (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4816,7 +4744,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -519,8 +554,15 @@ handle_authentication_failed (GdmSessionRelay *session_relay, +@@ -511,8 +546,15 @@ handle_authentication_failed (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4832,7 +4760,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: AuthenticationFailed"); -@@ -528,7 +570,7 @@ handle_authentication_failed (GdmSessionRelay *session_relay, +@@ -520,7 +562,7 @@ handle_authentication_failed (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4841,7 +4769,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -540,8 +582,15 @@ handle_authorized (GdmSessionRelay *session_relay, +@@ -532,8 +574,15 @@ handle_authorized (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4857,7 +4785,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: Authorized"); -@@ -549,7 +598,7 @@ handle_authorized (GdmSessionRelay *session_relay, +@@ -541,7 +590,7 @@ handle_authorized (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4866,7 +4794,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -561,8 +610,15 @@ handle_authorization_failed (GdmSessionRelay *session_relay, +@@ -553,8 +602,15 @@ handle_authorization_failed (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4882,7 +4810,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: AuthorizationFailed"); -@@ -570,7 +626,7 @@ handle_authorization_failed (GdmSessionRelay *session_relay, +@@ -562,7 +618,7 @@ handle_authorization_failed (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4891,7 +4819,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -582,8 +638,15 @@ handle_accredited (GdmSessionRelay *session_relay, +@@ -574,8 +630,15 @@ handle_accredited (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4907,7 +4835,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: Accredited"); -@@ -591,7 +654,7 @@ handle_accredited (GdmSessionRelay *session_relay, +@@ -583,7 +646,7 @@ handle_accredited (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4916,7 +4844,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -603,8 +666,15 @@ handle_accreditation_failed (GdmSessionRelay *session_relay, +@@ -595,8 +658,15 @@ handle_accreditation_failed (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4932,7 +4860,7 @@ index a0b4cbf..98ccc51 100644 g_debug ("GdmSessionRelay: AccreditationFailed"); -@@ -612,7 +682,7 @@ handle_accreditation_failed (GdmSessionRelay *session_relay, +@@ -604,7 +674,7 @@ handle_accreditation_failed (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4941,7 +4869,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -623,9 +693,11 @@ handle_session_opened (GdmSessionRelay *session_relay, +@@ -615,9 +685,11 @@ handle_session_opened (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4953,7 +4881,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); } -@@ -637,7 +709,7 @@ handle_session_opened (GdmSessionRelay *session_relay, +@@ -629,7 +701,7 @@ handle_session_opened (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4962,7 +4890,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -649,9 +721,11 @@ handle_session_open_failed (GdmSessionRelay *session_relay, +@@ -641,9 +713,11 @@ handle_session_open_failed (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4974,7 +4902,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); } -@@ -663,7 +737,7 @@ handle_session_open_failed (GdmSessionRelay *session_relay, +@@ -655,7 +729,7 @@ handle_session_open_failed (GdmSessionRelay *session_relay, dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); @@ -4983,7 +4911,7 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; } -@@ -675,6 +749,7 @@ handle_session_started (GdmSessionRelay *session_relay, +@@ -667,6 +741,7 @@ handle_session_started (GdmSessionRelay *session_relay, { DBusMessage *reply; DBusError error; @@ -4991,7 +4919,7 @@ index a0b4cbf..98ccc51 100644 int pid; dbus_error_init (&error); -@@ -682,6 +757,7 @@ handle_session_started (GdmSessionRelay *session_relay, +@@ -674,6 +749,7 @@ handle_session_started (GdmSessionRelay *session_relay, pid = 0; if (! dbus_message_get_args (message, &error, @@ -4999,7 +4927,7 @@ index a0b4cbf..98ccc51 100644 DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID)) { g_warning ("ERROR: %s", error.message); -@@ -694,6 +770,7 @@ handle_session_started (GdmSessionRelay *session_relay, +@@ -686,6 +762,7 @@ handle_session_started (GdmSessionRelay *session_relay, dbus_message_unref (reply); _gdm_session_session_started (GDM_SESSION (session_relay), @@ -5008,10 +4936,10 @@ index a0b4cbf..98ccc51 100644 return DBUS_HANDLER_RESULT_HANDLED; diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c -index e8ebc60..f992340 100644 +index 0a0d585..a384fdc 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c -@@ -2855,6 +2855,28 @@ worker_dbus_filter_function (DBusConnection *connection, +@@ -2800,6 +2800,28 @@ worker_dbus_filter_function (DBusConnection *connection, return DBUS_HANDLER_RESULT_HANDLED; } @@ -5040,7 +4968,7 @@ index e8ebc60..f992340 100644 static GObject * gdm_session_worker_constructor (GType type, guint n_construct_properties, -@@ -2881,6 +2903,11 @@ gdm_session_worker_constructor (GType type, +@@ -2826,6 +2848,11 @@ gdm_session_worker_constructor (GType type, exit (1); } @@ -5053,7 +4981,7 @@ index e8ebc60..f992340 100644 dbus_connection_set_exit_on_disconnect (worker->priv->connection, TRUE); diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 1820e29..8858071 100644 +index 6a87ddd..4c7f6bc 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -24,11 +24,13 @@ @@ -5070,7 +4998,7 @@ index 1820e29..8858071 100644 SETUP_COMPLETE, SETUP_FAILED, RESET_COMPLETE, -@@ -89,6 +91,15 @@ gdm_session_start_conversation (GdmSession *session, +@@ -88,6 +90,15 @@ gdm_session_start_conversation (GdmSession *session, } void @@ -5086,7 +5014,7 @@ index 1820e29..8858071 100644 gdm_session_close (GdmSession *session) { g_return_if_fail (GDM_IS_SESSION (session)); -@@ -116,37 +127,41 @@ gdm_session_setup_for_user (GdmSession *session, +@@ -115,37 +126,41 @@ gdm_session_setup_for_user (GdmSession *session, } void @@ -5134,7 +5062,7 @@ index 1820e29..8858071 100644 } void -@@ -194,19 +209,21 @@ gdm_session_cancel (GdmSession *session) +@@ -184,19 +199,21 @@ gdm_session_cancel (GdmSession *session) } void @@ -5160,7 +5088,7 @@ index 1820e29..8858071 100644 } static void -@@ -223,7 +240,17 @@ gdm_session_class_init (gpointer g_iface) +@@ -213,7 +230,17 @@ gdm_session_class_init (gpointer g_iface) NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, @@ -5179,7 +5107,7 @@ index 1820e29..8858071 100644 signals [SETUP_COMPLETE] = g_signal_new ("setup-complete", iface_type, -@@ -231,9 +258,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -221,9 +248,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, setup_complete), NULL, NULL, @@ -5192,7 +5120,7 @@ index 1820e29..8858071 100644 signals [SETUP_FAILED] = g_signal_new ("setup-failed", iface_type, -@@ -241,10 +269,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -231,10 +259,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, setup_failed), NULL, NULL, @@ -5206,7 +5134,7 @@ index 1820e29..8858071 100644 signals [RESET_COMPLETE] = g_signal_new ("reset-complete", iface_type, -@@ -273,9 +301,9 @@ gdm_session_class_init (gpointer g_iface) +@@ -263,9 +291,9 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, authenticated), NULL, NULL, @@ -5218,7 +5146,7 @@ index 1820e29..8858071 100644 signals [AUTHENTICATION_FAILED] = g_signal_new ("authentication-failed", iface_type, -@@ -283,10 +311,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -273,10 +301,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, authentication_failed), NULL, NULL, @@ -5232,7 +5160,7 @@ index 1820e29..8858071 100644 signals [AUTHORIZED] = g_signal_new ("authorized", iface_type, -@@ -294,9 +322,9 @@ gdm_session_class_init (gpointer g_iface) +@@ -284,9 +312,9 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, authorized), NULL, NULL, @@ -5244,7 +5172,7 @@ index 1820e29..8858071 100644 signals [AUTHORIZATION_FAILED] = g_signal_new ("authorization-failed", iface_type, -@@ -304,10 +332,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -294,10 +322,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, authorization_failed), NULL, NULL, @@ -5258,7 +5186,7 @@ index 1820e29..8858071 100644 signals [ACCREDITED] = g_signal_new ("accredited", iface_type, -@@ -315,9 +343,9 @@ gdm_session_class_init (gpointer g_iface) +@@ -305,9 +333,9 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, accredited), NULL, NULL, @@ -5270,7 +5198,7 @@ index 1820e29..8858071 100644 signals [ACCREDITATION_FAILED] = g_signal_new ("accreditation-failed", iface_type, -@@ -325,10 +353,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -315,10 +343,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, accreditation_failed), NULL, NULL, @@ -5284,7 +5212,7 @@ index 1820e29..8858071 100644 signals [INFO_QUERY] = g_signal_new ("info-query", -@@ -337,10 +365,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -327,10 +355,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, info_query), NULL, NULL, @@ -5298,7 +5226,7 @@ index 1820e29..8858071 100644 signals [SECRET_INFO_QUERY] = g_signal_new ("secret-info-query", iface_type, -@@ -348,10 +376,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -338,10 +366,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, secret_info_query), NULL, NULL, @@ -5312,7 +5240,7 @@ index 1820e29..8858071 100644 signals [INFO] = g_signal_new ("info", iface_type, -@@ -359,10 +387,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -349,10 +377,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, info), NULL, NULL, @@ -5326,7 +5254,7 @@ index 1820e29..8858071 100644 signals [PROBLEM] = g_signal_new ("problem", iface_type, -@@ -370,10 +398,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -360,10 +388,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, problem), NULL, NULL, @@ -5340,7 +5268,7 @@ index 1820e29..8858071 100644 signals [SESSION_OPENED] = g_signal_new ("session-opened", iface_type, -@@ -381,9 +409,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -371,9 +399,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, session_opened), NULL, NULL, @@ -5353,7 +5281,7 @@ index 1820e29..8858071 100644 signals [SESSION_OPEN_FAILED] = g_signal_new ("session-open-failed", iface_type, -@@ -391,10 +420,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -381,10 +410,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, session_open_failed), NULL, NULL, @@ -5367,7 +5295,7 @@ index 1820e29..8858071 100644 signals [SESSION_STARTED] = g_signal_new ("session-started", iface_type, -@@ -402,10 +431,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -392,10 +421,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, session_started), NULL, NULL, @@ -5381,7 +5309,7 @@ index 1820e29..8858071 100644 signals [SESSION_START_FAILED] = g_signal_new ("session-start-failed", iface_type, -@@ -413,10 +442,10 @@ gdm_session_class_init (gpointer g_iface) +@@ -403,10 +432,10 @@ gdm_session_class_init (gpointer g_iface) G_STRUCT_OFFSET (GdmSessionIface, session_start_failed), NULL, NULL, @@ -5395,7 +5323,7 @@ index 1820e29..8858071 100644 signals [SESSION_EXITED] = g_signal_new ("session-exited", iface_type, -@@ -496,19 +525,21 @@ gdm_session_class_init (gpointer g_iface) +@@ -475,19 +504,21 @@ gdm_session_class_init (gpointer g_iface) } void @@ -5420,7 +5348,7 @@ index 1820e29..8858071 100644 } void -@@ -528,114 +559,128 @@ _gdm_session_reset_failed (GdmSession *session, +@@ -507,114 +538,128 @@ _gdm_session_reset_failed (GdmSession *session, } void @@ -5567,7 +5495,7 @@ index 1820e29..8858071 100644 } void -@@ -663,6 +708,14 @@ _gdm_session_conversation_started (GdmSession *session, +@@ -642,6 +687,14 @@ _gdm_session_conversation_started (GdmSession *session, } void @@ -5583,7 +5511,7 @@ index 1820e29..8858071 100644 { g_return_if_fail (GDM_IS_SESSION (session)); diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h -index 00c2fa4..22c2ccb 100644 +index 202da36..9e72f89 100644 --- a/daemon/gdm-session.h +++ b/daemon/gdm-session.h @@ -47,18 +47,25 @@ struct _GdmSessionIface @@ -5615,7 +5543,7 @@ index 00c2fa4..22c2ccb 100644 const char *text); void (* select_language) (GdmSession *session, const char *text); -@@ -68,41 +75,58 @@ struct _GdmSessionIface +@@ -66,41 +73,58 @@ struct _GdmSessionIface const char *text); void (* select_user) (GdmSession *session, const char *text); @@ -5680,7 +5608,7 @@ index 00c2fa4..22c2ccb 100644 const char *message); void (* session_exited) (GdmSession *session, int exit_code); -@@ -110,6 +134,8 @@ struct _GdmSessionIface +@@ -108,6 +132,8 @@ struct _GdmSessionIface int signal_number); void (* conversation_started) (GdmSession *session, const char *service_name); @@ -5689,7 +5617,7 @@ index 00c2fa4..22c2ccb 100644 void (* closed) (GdmSession *session); void (* selected_user_changed) (GdmSession *session, const char *text); -@@ -126,21 +152,29 @@ GType gdm_session_get_type (void) G_GNUC_CONST; +@@ -122,21 +148,29 @@ GType gdm_session_get_type (void) G_GNUC_CONST; void gdm_session_start_conversation (GdmSession *session, const char *service_name); @@ -5724,7 +5652,7 @@ index 00c2fa4..22c2ccb 100644 void gdm_session_select_session (GdmSession *session, const char *session_name); diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 0b60ef7..c45011c 100644 +index a5b6e9c..83ceee8 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -75,6 +75,8 @@ struct GdmSimpleSlavePrivate @@ -6020,7 +5948,7 @@ index 0b60ef7..c45011c 100644 on_session_selected_user_changed (GdmSession *session, const char *text, GdmSimpleSlave *slave) -@@ -757,6 +797,10 @@ create_new_session (GdmSimpleSlave *slave) +@@ -745,6 +785,10 @@ create_new_session (GdmSimpleSlave *slave) G_CALLBACK (on_session_conversation_started), slave); g_signal_connect (slave->priv->session, @@ -6031,7 +5959,7 @@ index 0b60ef7..c45011c 100644 "setup-complete", G_CALLBACK (on_session_setup_complete), slave); -@@ -872,6 +916,9 @@ destroy_session (GdmSimpleSlave *slave) +@@ -855,6 +899,9 @@ destroy_session (GdmSimpleSlave *slave) G_CALLBACK (on_session_conversation_started), slave); g_signal_handlers_disconnect_by_func (slave->priv->session, @@ -6041,7 +5969,7 @@ index 0b60ef7..c45011c 100644 G_CALLBACK (on_session_setup_complete), slave); g_signal_handlers_disconnect_by_func (slave->priv->session, -@@ -999,11 +1046,12 @@ on_greeter_start_conversation (GdmGreeterServer *greeter_server, +@@ -978,11 +1025,12 @@ on_greeter_start_conversation (GdmGreeterServer *greeter_server, static void on_greeter_begin_verification (GdmGreeterServer *greeter_server, @@ -6055,7 +5983,7 @@ index 0b60ef7..c45011c 100644 } static void -@@ -1019,21 +1067,23 @@ on_greeter_begin_auto_login (GdmGreeterServer *greeter_server, +@@ -998,21 +1046,23 @@ on_greeter_begin_auto_login (GdmGreeterServer *greeter_server, static void on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server, @@ -6081,7 +6009,7 @@ index 0b60ef7..c45011c 100644 } static void -@@ -1096,18 +1146,20 @@ on_greeter_connected (GdmGreeterServer *greeter_server, +@@ -1067,18 +1117,20 @@ on_greeter_connected (GdmGreeterServer *greeter_server, static void on_start_session_when_ready (GdmGreeterServer *session, @@ -6223,10 +6151,10 @@ index 9bfda86..fe78230 100644 static void diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c -index b175fc9..e42ab1e 100644 +index ae61eb1..90bbb4d 100644 --- a/gui/simple-greeter/gdm-greeter-client.c +++ b/gui/simple-greeter/gdm-greeter-client.c -@@ -135,6 +135,37 @@ emit_string_and_int_signal_for_message (GdmGreeterClient *client, +@@ -134,6 +134,37 @@ emit_string_and_int_signal_for_message (GdmGreeterClient *client, } static void @@ -6264,7 +6192,7 @@ index b175fc9..e42ab1e 100644 emit_string_signal_for_message (GdmGreeterClient *client, const char *name, DBusMessage *message, -@@ -201,37 +232,35 @@ static void +@@ -193,37 +224,35 @@ static void on_user_authorized (GdmGreeterClient *client, DBusMessage *message) { @@ -6307,7 +6235,7 @@ index b175fc9..e42ab1e 100644 } static void -@@ -319,14 +348,22 @@ send_dbus_string_method (DBusConnection *connection, +@@ -311,14 +340,22 @@ send_dbus_string_method (DBusConnection *connection, } static gboolean @@ -6333,7 +6261,7 @@ index b175fc9..e42ab1e 100644 g_debug ("GdmGreeterClient: Calling %s", method); message = dbus_message_new_method_call (NULL, -@@ -340,8 +377,77 @@ send_dbus_bool_method (DBusConnection *connection, +@@ -332,8 +369,77 @@ send_dbus_bool_method (DBusConnection *connection, dbus_message_iter_init_append (message, &iter); dbus_message_iter_append_basic (&iter, @@ -6412,7 +6340,7 @@ index b175fc9..e42ab1e 100644 dbus_error_init (&error); reply = dbus_connection_send_with_reply_and_block (connection, -@@ -424,37 +530,44 @@ gdm_greeter_client_call_begin_auto_login (GdmGreeterClient *client, +@@ -416,37 +522,44 @@ gdm_greeter_client_call_begin_auto_login (GdmGreeterClient *client, } void @@ -6469,7 +6397,7 @@ index b175fc9..e42ab1e 100644 } void -@@ -849,10 +962,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -831,10 +944,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, info_query), NULL, NULL, @@ -6483,7 +6411,7 @@ index b175fc9..e42ab1e 100644 gdm_greeter_client_signals[SECRET_INFO_QUERY] = g_signal_new ("secret-info-query", -@@ -861,10 +974,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -843,10 +956,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, secret_info_query), NULL, NULL, @@ -6497,7 +6425,7 @@ index b175fc9..e42ab1e 100644 gdm_greeter_client_signals[INFO] = g_signal_new ("info", -@@ -873,10 +986,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -855,10 +968,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, info), NULL, NULL, @@ -6511,7 +6439,7 @@ index b175fc9..e42ab1e 100644 gdm_greeter_client_signals[PROBLEM] = g_signal_new ("problem", -@@ -885,10 +998,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -867,10 +980,10 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, problem), NULL, NULL, @@ -6525,7 +6453,7 @@ index b175fc9..e42ab1e 100644 gdm_greeter_client_signals[READY] = g_signal_new ("ready", -@@ -980,8 +1093,9 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -952,8 +1065,9 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_STRUCT_OFFSET (GdmGreeterClientClass, user_authorized), NULL, NULL, @@ -6538,7 +6466,7 @@ index b175fc9..e42ab1e 100644 static void diff --git a/gui/simple-greeter/gdm-greeter-client.h b/gui/simple-greeter/gdm-greeter-client.h -index e08aaa5..2f27503 100644 +index 5f92abe..868b496 100644 --- a/gui/simple-greeter/gdm-greeter-client.h +++ b/gui/simple-greeter/gdm-greeter-client.h @@ -45,17 +45,22 @@ typedef struct @@ -6565,7 +6493,7 @@ index e08aaa5..2f27503 100644 void (* reset) (GdmGreeterClient *client); void (* authentication_failed) (GdmGreeterClient *client); void (* selected_user_changed) (GdmGreeterClient *client, -@@ -70,7 +75,8 @@ typedef struct +@@ -68,7 +73,8 @@ typedef struct void (* timed_login_requested) (GdmGreeterClient *client, const char *username, int delay); @@ -6575,7 +6503,7 @@ index e08aaa5..2f27503 100644 } GdmGreeterClientClass; #define GDM_GREETER_CLIENT_ERROR (gdm_greeter_client_error_quark ()) -@@ -96,8 +102,10 @@ void gdm_greeter_client_call_start_conversation (GdmGreeter +@@ -94,8 +100,10 @@ void gdm_greeter_client_call_start_conversation (GdmGreeter const char *service_name); void gdm_greeter_client_call_begin_auto_login (GdmGreeterClient *client, const char *username); @@ -6587,7 +6515,7 @@ index e08aaa5..2f27503 100644 const char *username); void gdm_greeter_client_call_cancel (GdmGreeterClient *client); void gdm_greeter_client_call_disconnect (GdmGreeterClient *client); -@@ -112,9 +120,11 @@ void gdm_greeter_client_call_select_layout (GdmGreeter +@@ -108,9 +116,11 @@ void gdm_greeter_client_call_select_language (GdmGreeter void gdm_greeter_client_call_select_session (GdmGreeterClient *client, const char *text); void gdm_greeter_client_call_answer_query (GdmGreeterClient *client, @@ -6600,7 +6528,7 @@ index e08aaa5..2f27503 100644 diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c -index 63de620..b7e7f1c 100644 +index d1d2341..fa2d8e6 100644 --- a/gui/simple-greeter/gdm-greeter-session.c +++ b/gui/simple-greeter/gdm-greeter-session.c @@ -69,6 +69,7 @@ static gpointer session_object = NULL; @@ -6619,7 +6547,7 @@ index 63de620..b7e7f1c 100644 const char *text, GdmGreeterSession *session) { -@@ -202,6 +204,7 @@ on_user_authorized (GdmGreeterClient *client, +@@ -186,6 +188,7 @@ on_user_authorized (GdmGreeterClient *client, static void on_info_query (GdmGreeterClient *client, @@ -6627,7 +6555,7 @@ index 63de620..b7e7f1c 100644 const char *text, GdmGreeterSession *session) { -@@ -212,6 +215,7 @@ on_info_query (GdmGreeterClient *client, +@@ -196,6 +199,7 @@ on_info_query (GdmGreeterClient *client, static void on_secret_info_query (GdmGreeterClient *client, @@ -6635,7 +6563,7 @@ index 63de620..b7e7f1c 100644 const char *text, GdmGreeterSession *session) { -@@ -233,7 +237,8 @@ static void +@@ -217,7 +221,8 @@ static void on_begin_verification (GdmGreeterLoginWindow *login_window, GdmGreeterSession *session) { @@ -6645,7 +6573,7 @@ index 63de620..b7e7f1c 100644 } static void -@@ -242,6 +247,7 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window, +@@ -226,6 +231,7 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window, GdmGreeterSession *session) { gdm_greeter_client_call_begin_verification_for_user (session->priv->client, @@ -6653,7 +6581,7 @@ index 63de620..b7e7f1c 100644 username); } -@@ -251,6 +257,7 @@ on_query_answer (GdmGreeterLoginWindow *login_window, +@@ -235,6 +241,7 @@ on_query_answer (GdmGreeterLoginWindow *login_window, GdmGreeterSession *session) { gdm_greeter_client_call_answer_query (session->priv->client, @@ -6661,7 +6589,7 @@ index 63de620..b7e7f1c 100644 text); } -@@ -308,7 +315,7 @@ static void +@@ -283,7 +290,7 @@ static void on_start_session (GdmGreeterLoginWindow *login_window, GdmGreeterSession *session) { @@ -6671,10 +6599,10 @@ index 63de620..b7e7f1c 100644 static int -- -1.7.3.3 +1.7.3.5 -From afa1b73fec6699efbf0fe2fa7a592cb0c844d751 Mon Sep 17 00:00:00 2001 +From 201ce0918dad83249cd726dcb336dc0ad267cbc0 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 28 Oct 2009 16:05:14 -0400 Subject: [PATCH 11/35] Return a different error code for "service won't work" than "auth failed" @@ -6687,10 +6615,10 @@ a more sensible UI when e.g. fingerprinting isn't enabled. 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c -index f992340..fc2ec21 100644 +index a384fdc..71f1a1c 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c -@@ -1286,8 +1286,8 @@ gdm_session_worker_initialize_pam (GdmSessionWorker *worker, +@@ -1285,8 +1285,8 @@ gdm_session_worker_initialize_pam (GdmSessionWorker *worker, */ g_set_error (error, GDM_SESSION_WORKER_ERROR, @@ -6701,7 +6629,7 @@ index f992340..fc2ec21 100644 error_code == PAM_ABORT? _("general failure") : error_code == PAM_BUF_ERR? _("out of memory") : error_code == PAM_SYSTEM_ERR? _("application programmer error") : -@@ -1398,7 +1398,15 @@ gdm_session_worker_authenticate_user (GdmSessionWorker *worker, +@@ -1397,7 +1397,15 @@ gdm_session_worker_authenticate_user (GdmSessionWorker *worker, /* blocking call, does the actual conversation */ error_code = pam_authenticate (worker->priv->pam_handle, authentication_flags); @@ -6731,10 +6659,10 @@ index ee5465a..b1c8285 100644 GDM_SESSION_WORKER_ERROR_AUTHORIZING, GDM_SESSION_WORKER_ERROR_OPENING_LOG_FILE, -- -1.7.3.3 +1.7.3.5 -From 6d6dfbd6f97c4adab7fafb233ece88567fbe8ff0 Mon Sep 17 00:00:00 2001 +From aa3b9a352ffe59ae03703a02fda2fc020603f195 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 28 Oct 2009 21:32:00 -0400 Subject: [PATCH 12/35] Emit "service-unavailable" from session when pam service refuses to work @@ -6749,10 +6677,10 @@ Subject: [PATCH 12/35] Emit "service-unavailable" from session when pam service 6 files changed, 103 insertions(+), 10 deletions(-) diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index 680c0f0..832b870 100644 +index f91eff3..9268bc5 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c -@@ -283,9 +283,27 @@ on_session_exited (GdmSession *session, +@@ -281,9 +281,27 @@ on_session_exited (GdmSession *session, } static DBusHandlerResult @@ -6783,7 +6711,7 @@ index 680c0f0..832b870 100644 { DBusMessage *reply; -@@ -1320,6 +1338,8 @@ session_worker_message (DBusConnection *connection, +@@ -1237,6 +1255,8 @@ session_worker_message (DBusConnection *connection, return gdm_session_direct_handle_problem (session, conversation, message); } else if (dbus_message_is_method_call (message, GDM_SESSION_DBUS_INTERFACE, "CancelPendingQuery")) { return gdm_session_direct_handle_cancel_pending_query (session, conversation, message); @@ -6793,7 +6721,7 @@ index 680c0f0..832b870 100644 return gdm_session_direct_handle_setup_complete (session, conversation, message); } else if (dbus_message_is_method_call (message, GDM_SESSION_DBUS_INTERFACE, "SetupFailed")) { diff --git a/daemon/gdm-session-private.h b/daemon/gdm-session-private.h -index 36781dd..e0a810e 100644 +index e15b7dd..fb1f972 100644 --- a/daemon/gdm-session-private.h +++ b/daemon/gdm-session-private.h @@ -31,6 +31,8 @@ void _gdm_session_conversation_started (GdmSession *sessio @@ -6806,10 +6734,10 @@ index 36781dd..e0a810e 100644 const char *service_name); void _gdm_session_setup_failed (GdmSession *session, diff --git a/daemon/gdm-session-relay.c b/daemon/gdm-session-relay.c -index 98ccc51..88aee14 100644 +index 50f1140..f76fa6f 100644 --- a/daemon/gdm-session-relay.c +++ b/daemon/gdm-session-relay.c -@@ -463,6 +463,34 @@ handle_problem (GdmSessionRelay *session_relay, +@@ -455,6 +455,34 @@ handle_problem (GdmSessionRelay *session_relay, } static DBusHandlerResult @@ -6844,7 +6772,7 @@ index 98ccc51..88aee14 100644 handle_setup_complete (GdmSessionRelay *session_relay, DBusConnection *connection, DBusMessage *message) -@@ -841,6 +869,8 @@ session_handle_child_message (DBusConnection *connection, +@@ -833,6 +861,8 @@ session_handle_child_message (DBusConnection *connection, return handle_info (session_relay, connection, message); } else if (dbus_message_is_method_call (message, GDM_SESSION_RELAY_DBUS_INTERFACE, "Problem")) { return handle_problem (session_relay, connection, message); @@ -6853,7 +6781,7 @@ index 98ccc51..88aee14 100644 } else if (dbus_message_is_method_call (message, GDM_SESSION_RELAY_DBUS_INTERFACE, "SetupComplete")) { return handle_setup_complete (session_relay, connection, message); } else if (dbus_message_is_method_call (message, GDM_SESSION_RELAY_DBUS_INTERFACE, "SetupFailed")) { -@@ -898,6 +928,9 @@ do_introspect (DBusConnection *connection, +@@ -890,6 +920,9 @@ do_introspect (DBusConnection *connection, " \n" " \n" " \n" @@ -6864,10 +6792,10 @@ index 98ccc51..88aee14 100644 " \n" " \n" diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c -index fc2ec21..64055e7 100644 +index 71f1a1c..c6f5c33 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c -@@ -2345,9 +2345,16 @@ do_setup (GdmSessionWorker *worker) +@@ -2292,9 +2292,16 @@ do_setup (GdmSessionWorker *worker) worker->priv->display_device, &error); if (! res) { @@ -6887,7 +6815,7 @@ index fc2ec21..64055e7 100644 g_error_free (error); return; } -@@ -2368,10 +2375,18 @@ do_authenticate (GdmSessionWorker *worker) +@@ -2315,10 +2322,18 @@ do_authenticate (GdmSessionWorker *worker) worker->priv->password_is_required, &error); if (! res) { @@ -6911,7 +6839,7 @@ index fc2ec21..64055e7 100644 return; } diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 8858071..8c4548a 100644 +index 4c7f6bc..bf7c878 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -31,6 +31,7 @@ @@ -6922,7 +6850,7 @@ index 8858071..8c4548a 100644 SETUP_COMPLETE, SETUP_FAILED, RESET_COMPLETE, -@@ -251,6 +252,17 @@ gdm_session_class_init (gpointer g_iface) +@@ -241,6 +242,17 @@ gdm_session_class_init (gpointer g_iface) g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); @@ -6940,7 +6868,7 @@ index 8858071..8c4548a 100644 signals [SETUP_COMPLETE] = g_signal_new ("setup-complete", iface_type, -@@ -525,6 +537,15 @@ gdm_session_class_init (gpointer g_iface) +@@ -504,6 +516,15 @@ gdm_session_class_init (gpointer g_iface) } void @@ -6957,7 +6885,7 @@ index 8858071..8c4548a 100644 const char *service_name) { diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h -index 22c2ccb..9636b92 100644 +index 9e72f89..ab16031 100644 --- a/daemon/gdm-session.h +++ b/daemon/gdm-session.h @@ -49,6 +49,8 @@ struct _GdmSessionIface @@ -6970,10 +6898,10 @@ index 22c2ccb..9636b92 100644 const char *service_name); void (* setup_for_user) (GdmSession *session, -- -1.7.3.3 +1.7.3.5 -From d828346081eb0a4fc7451237d79e584b327134d0 Mon Sep 17 00:00:00 2001 +From 7e5d5c65f6b796d5c4a2d80f0b94ce71298717c3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 28 Oct 2009 21:38:52 -0400 Subject: [PATCH 13/35] Bubble service-unavailable up to greeter @@ -6985,10 +6913,10 @@ Subject: [PATCH 13/35] Bubble service-unavailable up to greeter 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c -index 50e4193..4a011da 100644 +index d9ecb1f..6e300a0 100644 --- a/daemon/gdm-greeter-server.c +++ b/daemon/gdm-greeter-server.c -@@ -286,9 +286,18 @@ gdm_greeter_server_problem (GdmGreeterServer *greeter_server, +@@ -285,9 +285,18 @@ gdm_greeter_server_problem (GdmGreeterServer *greeter_server, } gboolean @@ -7010,10 +6938,10 @@ index 50e4193..4a011da 100644 } diff --git a/daemon/gdm-greeter-server.h b/daemon/gdm-greeter-server.h -index 5af32fd..ff1ff5d 100644 +index 9015c26..52ce9fc 100644 --- a/daemon/gdm-greeter-server.h +++ b/daemon/gdm-greeter-server.h -@@ -93,7 +93,10 @@ gboolean gdm_greeter_server_info (GdmGreeterServer * +@@ -91,7 +91,10 @@ gboolean gdm_greeter_server_info (GdmGreeterServer * gboolean gdm_greeter_server_problem (GdmGreeterServer *greeter_server, const char *service_name, const char *text); @@ -7026,7 +6954,7 @@ index 5af32fd..ff1ff5d 100644 gboolean gdm_greeter_server_ready (GdmGreeterServer *greeter_server, const char *service_name); diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index c45011c..7a1da63 100644 +index 83ceee8..d01b17f 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -264,22 +264,6 @@ greeter_reset_timeout (GdmSimpleSlave *slave) @@ -7082,7 +7010,7 @@ index c45011c..7a1da63 100644 } static void -@@ -801,6 +786,10 @@ create_new_session (GdmSimpleSlave *slave) +@@ -789,6 +774,10 @@ create_new_session (GdmSimpleSlave *slave) G_CALLBACK (on_session_conversation_stopped), slave); g_signal_connect (slave->priv->session, @@ -7093,7 +7021,7 @@ index c45011c..7a1da63 100644 "setup-complete", G_CALLBACK (on_session_setup_complete), slave); -@@ -919,6 +908,9 @@ destroy_session (GdmSimpleSlave *slave) +@@ -902,6 +891,9 @@ destroy_session (GdmSimpleSlave *slave) G_CALLBACK (on_session_conversation_stopped), slave); g_signal_handlers_disconnect_by_func (slave->priv->session, @@ -7104,10 +7032,10 @@ index c45011c..7a1da63 100644 slave); g_signal_handlers_disconnect_by_func (slave->priv->session, -- -1.7.3.3 +1.7.3.5 -From 330592f0c533f711aae7efa58245794551e691cd Mon Sep 17 00:00:00 2001 +From 8c47f191044e73ed423d73f9d87eda88b92f0944 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 28 Oct 2009 21:46:39 -0400 Subject: [PATCH 14/35] Catch service-unavailable from server in client and propagate it @@ -7118,7 +7046,7 @@ Subject: [PATCH 14/35] Catch service-unavailable from server in client and propa 2 files changed, 22 insertions(+), 0 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c -index e42ab1e..ad3ec7e 100644 +index 90bbb4d..7171741 100644 --- a/gui/simple-greeter/gdm-greeter-client.c +++ b/gui/simple-greeter/gdm-greeter-client.c @@ -63,6 +63,7 @@ enum { @@ -7129,7 +7057,7 @@ index e42ab1e..ad3ec7e 100644 READY, RESET, AUTHENTICATION_FAILED, -@@ -264,6 +265,13 @@ on_problem (GdmGreeterClient *client, +@@ -256,6 +257,13 @@ on_problem (GdmGreeterClient *client, } static void @@ -7143,7 +7071,7 @@ index e42ab1e..ad3ec7e 100644 on_ready (GdmGreeterClient *client, DBusMessage *message) { -@@ -770,6 +778,8 @@ client_dbus_handle_message (DBusConnection *connection, +@@ -754,6 +762,8 @@ client_dbus_handle_message (DBusConnection *connection, on_info (client, message); } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "Problem")) { on_problem (client, message); @@ -7152,7 +7080,7 @@ index e42ab1e..ad3ec7e 100644 } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "Ready")) { on_ready (client, message); } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "Reset")) { -@@ -1003,6 +1013,16 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -985,6 +995,16 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) 2, G_TYPE_STRING, G_TYPE_STRING); @@ -7170,7 +7098,7 @@ index e42ab1e..ad3ec7e 100644 g_signal_new ("ready", G_OBJECT_CLASS_TYPE (object_class), diff --git a/gui/simple-greeter/gdm-greeter-client.h b/gui/simple-greeter/gdm-greeter-client.h -index 2f27503..917ca9c 100644 +index 868b496..63bd4b5 100644 --- a/gui/simple-greeter/gdm-greeter-client.h +++ b/gui/simple-greeter/gdm-greeter-client.h @@ -59,6 +59,8 @@ typedef struct @@ -7183,23 +7111,23 @@ index 2f27503..917ca9c 100644 const char *service_name); void (* reset) (GdmGreeterClient *client); -- -1.7.3.3 +1.7.3.5 -From 7768021af7f0a00bb5caacf834f440a08e462e4e Mon Sep 17 00:00:00 2001 +From 30e4b74873d823a478f6ccf8eb60f88eb8ef1573 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Thu, 5 Feb 2009 15:20:25 -0500 Subject: [PATCH 15/35] Queue a greeter reset when the user clicks cancel --- - daemon/gdm-simple-slave.c | 34 ++++++++++++++++++++++++++++++++++ - 1 files changed, 34 insertions(+), 0 deletions(-) + daemon/gdm-simple-slave.c | 31 +++++++++++++++++++++++++++++++ + 1 files changed, 31 insertions(+), 0 deletions(-) diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index 7a1da63..c49e6c7 100644 +index d01b17f..b77f0c7 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c -@@ -1032,6 +1032,9 @@ on_greeter_start_conversation (GdmGreeterServer *greeter_server, +@@ -1011,6 +1011,9 @@ on_greeter_start_conversation (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: starting conversation with '%s' pam service'", service_name); @@ -7209,7 +7137,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_start_conversation (GDM_SESSION (slave->priv->session), service_name); } -@@ -1042,6 +1045,9 @@ on_greeter_begin_verification (GdmGreeterServer *greeter_server, +@@ -1021,6 +1024,9 @@ on_greeter_begin_verification (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: begin verification"); @@ -7219,7 +7147,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_setup (GDM_SESSION (slave->priv->session), service_name); } -@@ -1052,6 +1058,9 @@ on_greeter_begin_auto_login (GdmGreeterServer *greeter_server, +@@ -1031,6 +1037,9 @@ on_greeter_begin_auto_login (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username); @@ -7229,7 +7157,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), "gdm-autologin", username); -@@ -1064,6 +1073,9 @@ on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server, +@@ -1043,6 +1052,9 @@ on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: begin verification"); @@ -7239,7 +7167,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), service_name, username); -@@ -1075,6 +1087,9 @@ on_greeter_answer (GdmGreeterServer *greeter_server, +@@ -1054,6 +1066,9 @@ on_greeter_answer (GdmGreeterServer *greeter_server, const char *text, GdmSimpleSlave *slave) { @@ -7249,7 +7177,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_answer_query (GDM_SESSION (slave->priv->session), service_name, text); } -@@ -1083,6 +1098,9 @@ on_greeter_session_selected (GdmGreeterServer *greeter_server, +@@ -1062,6 +1077,9 @@ on_greeter_session_selected (GdmGreeterServer *greeter_server, const char *text, GdmSimpleSlave *slave) { @@ -7259,7 +7187,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_select_session (GDM_SESSION (slave->priv->session), text); } -@@ -1091,6 +1109,9 @@ on_greeter_language_selected (GdmGreeterServer *greeter_server, +@@ -1070,6 +1088,9 @@ on_greeter_language_selected (GdmGreeterServer *greeter_server, const char *text, GdmSimpleSlave *slave) { @@ -7269,17 +7197,7 @@ index 7a1da63..c49e6c7 100644 gdm_session_select_language (GDM_SESSION (slave->priv->session), text); } -@@ -1099,6 +1120,9 @@ on_greeter_layout_selected (GdmGreeterServer *greeter_server, - const char *text, - GdmSimpleSlave *slave) - { -+ if (slave->priv->greeter_reset_id > 0) { -+ return; -+ } - gdm_session_select_layout (GDM_SESSION (slave->priv->session), text); - } - -@@ -1115,6 +1139,7 @@ on_greeter_cancel (GdmGreeterServer *greeter_server, +@@ -1086,6 +1107,7 @@ on_greeter_cancel (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: Greeter cancelled"); @@ -7287,7 +7205,7 @@ index 7a1da63..c49e6c7 100644 queue_greeter_reset (slave); } -@@ -1125,6 +1150,9 @@ on_greeter_connected (GdmGreeterServer *greeter_server, +@@ -1096,6 +1118,9 @@ on_greeter_connected (GdmGreeterServer *greeter_server, gboolean display_is_local; g_debug ("GdmSimpleSlave: Greeter connected"); @@ -7297,7 +7215,7 @@ index 7a1da63..c49e6c7 100644 g_object_get (slave, "display-is-local", &display_is_local, -@@ -1142,6 +1170,9 @@ on_start_session_when_ready (GdmGreeterServer *session, +@@ -1113,6 +1138,9 @@ on_start_session_when_ready (GdmGreeterServer *session, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: Will start session when ready"); @@ -7307,7 +7225,7 @@ index 7a1da63..c49e6c7 100644 slave->priv->start_session_when_ready = TRUE; if (slave->priv->waiting_to_start_session) { -@@ -1155,6 +1186,9 @@ on_start_session_later (GdmGreeterServer *session, +@@ -1126,6 +1154,9 @@ on_start_session_later (GdmGreeterServer *session, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: Will start session when ready and told"); @@ -7318,10 +7236,10 @@ index 7a1da63..c49e6c7 100644 } -- -1.7.3.3 +1.7.3.5 -From 4874b7a931e0e050cc5f4678a2b3ed287462126c Mon Sep 17 00:00:00 2001 +From e9b0ca2b1b44859074f501394277e0557e7172b1 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Nov 2009 13:35:26 -0500 Subject: [PATCH 16/35] Don't delay login for passwd -d users @@ -7334,10 +7252,10 @@ was happening. 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index b7ee893..1d66c73 100644 +index 9249906..47dcaa9 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -846,7 +846,7 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ +@@ -845,7 +845,7 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ * so they can pick language/session. Will need to refactor things * a bit so we can share code with timed login. */ @@ -7347,10 +7265,10 @@ index b7ee893..1d66c73 100644 g_debug ("GdmGreeterLoginWindow: Okay, we'll start the session anyway," "because the user isn't ever going to get an opportunity to" -- -1.7.3.3 +1.7.3.5 -From 55d49cc15eb49fbe69d83287238cabcaa8b566ab Mon Sep 17 00:00:00 2001 +From 6ca9088d13716a083ecfb7bfecac93e9225dc95b Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 30 Jan 2009 23:57:31 -0500 Subject: [PATCH 17/35] Add a plugin based extension system to greeter @@ -7362,15 +7280,15 @@ run. --- common/gdm-marshal.list | 1 + configure.ac | 44 + - gui/simple-greeter/Makefile.am | 19 + + gui/simple-greeter/Makefile.am | 21 + gui/simple-greeter/gdm-greeter-client.c | 21 + gui/simple-greeter/gdm-greeter-client.h | 2 + - gui/simple-greeter/gdm-greeter-login-window.c | 1061 +++++++++++++++++--- + gui/simple-greeter/gdm-greeter-login-window.c | 1058 +++++++++++++++++--- gui/simple-greeter/gdm-greeter-login-window.h | 36 +- gui/simple-greeter/gdm-greeter-login-window.ui | 67 +- gui/simple-greeter/gdm-greeter-plugin.c | 254 +++++ gui/simple-greeter/gdm-greeter-plugin.h | 61 ++ - gui/simple-greeter/gdm-greeter-session.c | 161 +++- + gui/simple-greeter/gdm-greeter-session.c | 160 +++- gui/simple-greeter/gdm-plugin-manager.c | 478 +++++++++ gui/simple-greeter/gdm-plugin-manager.h | 66 ++ gui/simple-greeter/gdm-task-list.c | 385 +++++++ @@ -7385,14 +7303,14 @@ run. gui/simple-greeter/libgdmsimplegreeter/gdm-task.h | 66 ++ .../libgdmsimplegreeter/gdmsimplegreeter.pc.in | 11 + gui/simple-greeter/plugins/Makefile.am | 1 + - gui/simple-greeter/plugins/password/Makefile.am | 53 + + gui/simple-greeter/plugins/password/Makefile.am | 52 + .../plugins/password/gdm-password-extension.c | 328 ++++++ .../plugins/password/gdm-password-extension.h | 56 + .../plugins/password/gdm-password.pam | 19 + gui/simple-greeter/plugins/password/page.ui | 57 ++ gui/simple-greeter/plugins/password/plugin.c | 40 + po/POTFILES.in | 1 + - 32 files changed, 3745 insertions(+), 255 deletions(-) + 32 files changed, 3745 insertions(+), 252 deletions(-) create mode 100644 gui/simple-greeter/gdm-greeter-plugin.c create mode 100644 gui/simple-greeter/gdm-greeter-plugin.h create mode 100644 gui/simple-greeter/gdm-plugin-manager.c @@ -7425,7 +7343,7 @@ index d5455e1..d8a9e72 100644 VOID:DOUBLE +BOOLEAN:STRING diff --git a/configure.ac b/configure.ac -index 3a12767..8c8b74d 100644 +index fe612e7..8a423bb 100644 --- a/configure.ac +++ b/configure.ac @@ -18,6 +18,22 @@ AC_PROG_CXX @@ -7451,7 +7369,7 @@ index 3a12767..8c8b74d 100644 AC_HEADER_STDC AC_SUBST(VERSION) -@@ -197,6 +213,15 @@ AC_ARG_WITH(dmconfdir, +@@ -192,6 +208,15 @@ AC_ARG_WITH(dmconfdir, AC_SUBST(dmconfdir) dnl --------------------------------------------------------------------------- @@ -7467,7 +7385,7 @@ index 3a12767..8c8b74d 100644 dnl - Configure arguments dnl --------------------------------------------------------------------------- -@@ -1273,6 +1298,21 @@ fi +@@ -1268,6 +1293,21 @@ fi AC_SUBST(GDM_SCREENSHOT_DIR) @@ -7489,38 +7407,36 @@ index 3a12767..8c8b74d 100644 dnl --------------------------------------------------------------------------- dnl - Finish -@@ -1401,6 +1441,10 @@ docs/Makefile +@@ -1395,6 +1435,10 @@ daemon/Makefile + docs/Makefile gui/Makefile gui/simple-greeter/Makefile - gui/simple-greeter/libnotificationarea/Makefile +gui/simple-greeter/libgdmsimplegreeter/Makefile +gui/simple-greeter/libgdmsimplegreeter/gdmsimplegreeter.pc +gui/simple-greeter/plugins/Makefile +gui/simple-greeter/plugins/password/Makefile gui/simple-chooser/Makefile - gui/user-switch-applet/Makefile utils/Makefile + data/gdm.conf diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am -index 6f7f3ee..b987de4 100644 +index 74edd01..927bb64 100644 --- a/gui/simple-greeter/Makefile.am +++ b/gui/simple-greeter/Makefile.am -@@ -2,12 +2,15 @@ NULL = - - SUBDIRS = \ - libnotificationarea \ +@@ -1,8 +1,13 @@ + NULL = ++SUBDIRS = \ + libgdmsimplegreeter \ + plugins \ - $(NULL) ++ $(NULL) AM_CPPFLAGS = \ -I$(top_srcdir)/common \ -I$(top_builddir)/common \ - -I$(top_srcdir)/gui/simple-greeter/libnotificationarea \ + -I$(top_srcdir)/gui/simple-greeter/libgdmsimplegreeter \ -DDMCONFDIR=\""$(dmconfdir)"\" \ -DGDMCONFDIR=\"$(gdmconfdir)\" \ -DDATADIR=\""$(datadir)"\" \ -@@ -20,6 +23,7 @@ AM_CPPFLAGS = \ +@@ -15,6 +20,7 @@ AM_CPPFLAGS = \ -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \ -DAT_SPI_REGISTRYD_DIR="\"$(AT_SPI_REGISTRYD_DIR)\"" \ $(UPOWER_CFLAGS) \ @@ -7528,7 +7444,7 @@ index 6f7f3ee..b987de4 100644 $(DISABLE_DEPRECATED_CFLAGS) \ $(GTK_CFLAGS) \ $(SIMPLE_GREETER_CFLAGS) \ -@@ -85,10 +89,17 @@ test_greeter_login_window_SOURCES = \ +@@ -79,10 +85,17 @@ test_greeter_login_window_SOURCES = \ gdm-user-chooser-widget.c \ gdm-user-chooser-dialog.h \ gdm-user-chooser-dialog.c \ @@ -7546,15 +7462,15 @@ index 6f7f3ee..b987de4 100644 libgdmuser.la \ $(COMMON_LIBS) \ $(SIMPLE_GREETER_LIBS) \ -@@ -139,6 +150,7 @@ test_greeter_panel_SOURCES = \ +@@ -124,6 +137,7 @@ test_greeter_panel_SOURCES = \ + test_greeter_panel_LDADD = \ $(top_builddir)/common/libgdmcommon.la \ - $(top_builddir)/gui/simple-greeter/libnotificationarea/libnotificationarea.la \ + $(top_builddir)/gui/simple-greeter/libgdmsimplegreeter/libgdmsimplegreeter.la \ $(SIMPLE_GREETER_LIBS) \ $(GTK_LIBS) \ $(GCONF_LIBS) \ -@@ -314,18 +326,25 @@ gdm_simple_greeter_SOURCES = \ +@@ -267,17 +281,24 @@ gdm_simple_greeter_SOURCES = \ gdm-language-chooser-dialog.c \ gdm-language-option-widget.h \ gdm-language-option-widget.c \ @@ -7575,13 +7491,12 @@ index 6f7f3ee..b987de4 100644 gdm_simple_greeter_LDADD = \ $(top_builddir)/common/libgdmcommon.la \ libgdmuser.la \ - $(top_builddir)/gui/simple-greeter/libnotificationarea/libnotificationarea.la \ + $(top_builddir)/gui/simple-greeter/libgdmsimplegreeter/libgdmsimplegreeter.la \ $(COMMON_LIBS) \ $(EXTRA_GREETER_LIBS) \ $(SIMPLE_GREETER_LIBS) \ diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c -index ad3ec7e..ef6fb43 100644 +index 7171741..198b566 100644 --- a/gui/simple-greeter/gdm-greeter-client.c +++ b/gui/simple-greeter/gdm-greeter-client.c @@ -65,6 +65,7 @@ enum { @@ -7592,7 +7507,7 @@ index ad3ec7e..ef6fb43 100644 RESET, AUTHENTICATION_FAILED, SELECTED_USER_CHANGED, -@@ -279,6 +280,13 @@ on_ready (GdmGreeterClient *client, +@@ -271,6 +272,13 @@ on_ready (GdmGreeterClient *client, } static void @@ -7606,7 +7521,7 @@ index ad3ec7e..ef6fb43 100644 on_reset (GdmGreeterClient *client, DBusMessage *message) { -@@ -782,6 +790,8 @@ client_dbus_handle_message (DBusConnection *connection, +@@ -766,6 +774,8 @@ client_dbus_handle_message (DBusConnection *connection, on_service_unavailable (client, message); } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "Ready")) { on_ready (client, message); @@ -7615,7 +7530,7 @@ index ad3ec7e..ef6fb43 100644 } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "Reset")) { on_reset (client, message); } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "AuthenticationFailed")) { -@@ -1034,6 +1044,17 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) +@@ -1016,6 +1026,17 @@ gdm_greeter_client_class_init (GdmGreeterClientClass *klass) G_TYPE_NONE, 1, G_TYPE_STRING); @@ -7634,7 +7549,7 @@ index ad3ec7e..ef6fb43 100644 g_signal_new ("reset", G_OBJECT_CLASS_TYPE (object_class), diff --git a/gui/simple-greeter/gdm-greeter-client.h b/gui/simple-greeter/gdm-greeter-client.h -index 917ca9c..3fd62d4 100644 +index 63bd4b5..8ff559c 100644 --- a/gui/simple-greeter/gdm-greeter-client.h +++ b/gui/simple-greeter/gdm-greeter-client.h @@ -63,6 +63,8 @@ typedef struct @@ -7647,7 +7562,7 @@ index 917ca9c..3fd62d4 100644 void (* authentication_failed) (GdmGreeterClient *client); void (* selected_user_changed) (GdmGreeterClient *client, diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 1d66c73..c01b9cb 100644 +index 47dcaa9..73a9918 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -1,7 +1,7 @@ @@ -7833,8 +7748,8 @@ index 1d66c73..c01b9cb 100644 + + widget = GTK_WIDGET (node->data); + -+ if (GTK_WIDGET_CAN_DEFAULT (widget) && -+ GTK_WIDGET_VISIBLE (widget)) { ++ if (gtk_widget_get_can_default (widget) && ++ gtk_widget_get_visible (widget)) { + gtk_widget_grab_default (widget); + break; + } @@ -8090,9 +8005,9 @@ index 1d66c73..c01b9cb 100644 { - GtkWidget *entry; GtkWidget *label; - guint mode; -@@ -655,11 +808,10 @@ reset_dialog (GdmGreeterLoginWindow *login_window, + g_debug ("GdmGreeterLoginWindow: Resetting dialog to mode %u", dialog_mode); +@@ -654,11 +807,10 @@ reset_dialog (GdmGreeterLoginWindow *login_window, set_message (login_window, ""); } @@ -8108,7 +8023,7 @@ index 1d66c73..c01b9cb 100644 label = GTK_WIDGET (gtk_builder_get_object (GDM_GREETER_LOGIN_WINDOW (login_window)->priv->builder, "auth-prompt-label")); gtk_label_set_text (GTK_LABEL (label), ""); -@@ -667,12 +819,9 @@ reset_dialog (GdmGreeterLoginWindow *login_window, +@@ -666,12 +818,9 @@ reset_dialog (GdmGreeterLoginWindow *login_window, if (can_jump_to_authenticate (login_window)) { /* If we don't have a user list jump straight to authenticate */ g_debug ("GdmGreeterLoginWindow: jumping straight to authenticate"); @@ -8122,7 +8037,7 @@ index 1d66c73..c01b9cb 100644 } else { switch_mode (login_window, dialog_mode); } -@@ -688,89 +837,178 @@ reset_dialog (GdmGreeterLoginWindow *login_window, +@@ -687,88 +836,177 @@ reset_dialog (GdmGreeterLoginWindow *login_window, } static void @@ -8314,7 +8229,6 @@ index 1d66c73..c01b9cb 100644 g_debug ("GdmGreeterLoginWindow: problem: %s", text); - set_message (GDM_GREETER_LOGIN_WINDOW (login_window), text); -- gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (login_window))); + task = find_task_with_service_name (login_window, service_name); + + if (task != NULL) { @@ -8324,11 +8238,10 @@ index 1d66c73..c01b9cb 100644 + g_object_unref (task); + } + -+ gdk_window_beep (GTK_WIDGET (login_window)->window); + gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (login_window))); return TRUE; - } -@@ -794,6 +1032,26 @@ request_timed_login (GdmGreeterLoginWindow *login_window) +@@ -793,6 +1031,26 @@ request_timed_login (GdmGreeterLoginWindow *login_window) login_window->priv->timed_login_already_enabled = TRUE; } @@ -8355,7 +8268,7 @@ index 1d66c73..c01b9cb 100644 void gdm_greeter_login_window_request_timed_login (GdmGreeterLoginWindow *login_window, const char *username, -@@ -821,11 +1079,21 @@ gdm_greeter_login_window_request_timed_login (GdmGreeterLoginWindow *login_windo +@@ -820,11 +1078,21 @@ gdm_greeter_login_window_request_timed_login (GdmGreeterLoginWindow *login_windo } static void @@ -8379,7 +8292,7 @@ index 1d66c73..c01b9cb 100644 } else { g_debug ("GdmGreeterLoginWindow: not starting session since " "user hasn't had an opportunity to pick language " -@@ -835,8 +1103,8 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ +@@ -834,8 +1102,8 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ */ login_window->priv->start_session_handler_id = g_signal_connect (login_window, "notify::is-interactive", @@ -8390,7 +8303,7 @@ index 1d66c73..c01b9cb 100644 /* FIXME: If the user wasn't asked any questions by pam but * pam still authorized them (passwd -d, or the questions got -@@ -859,10 +1127,10 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ +@@ -858,10 +1126,10 @@ gdm_greeter_login_window_start_session_when_ready (GdmGreeterLoginWindow *login_ gboolean gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window, @@ -8403,7 +8316,7 @@ index 1d66c73..c01b9cb 100644 g_return_val_if_fail (GDM_IS_GREETER_LOGIN_WINDOW (login_window), FALSE); -@@ -871,15 +1139,15 @@ gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window, +@@ -870,15 +1138,15 @@ gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window, g_debug ("GdmGreeterLoginWindow: info query: %s", text); @@ -8426,7 +8339,7 @@ index 1d66c73..c01b9cb 100644 set_sensitive (GDM_GREETER_LOGIN_WINDOW (login_window), TRUE); set_ready (GDM_GREETER_LOGIN_WINDOW (login_window)); set_focus (GDM_GREETER_LOGIN_WINDOW (login_window)); -@@ -891,25 +1159,26 @@ gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window, +@@ -890,25 +1158,26 @@ gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window, gboolean gdm_greeter_login_window_secret_info_query (GdmGreeterLoginWindow *login_window, @@ -8462,7 +8375,7 @@ index 1d66c73..c01b9cb 100644 set_sensitive (GDM_GREETER_LOGIN_WINDOW (login_window), TRUE); set_ready (GDM_GREETER_LOGIN_WINDOW (login_window)); set_focus (GDM_GREETER_LOGIN_WINDOW (login_window)); -@@ -920,13 +1189,16 @@ gdm_greeter_login_window_secret_info_query (GdmGreeterLoginWindow *login_window, +@@ -919,13 +1188,16 @@ gdm_greeter_login_window_secret_info_query (GdmGreeterLoginWindow *login_window, } void @@ -8482,7 +8395,7 @@ index 1d66c73..c01b9cb 100644 } static void -@@ -997,6 +1269,49 @@ on_user_chooser_visibility_changed (GdmGreeterLoginWindow *login_window) +@@ -996,6 +1268,49 @@ on_user_chooser_visibility_changed (GdmGreeterLoginWindow *login_window) update_banner_message (login_window); } @@ -8532,7 +8445,7 @@ index 1d66c73..c01b9cb 100644 static void on_users_loaded (GdmUserChooserWidget *user_chooser, GdmGreeterLoginWindow *login_window) -@@ -1010,38 +1325,153 @@ on_users_loaded (GdmUserChooserWidget *user_chooser, +@@ -1009,37 +1324,153 @@ on_users_loaded (GdmUserChooserWidget *user_chooser, gtk_widget_show (login_window->priv->user_chooser); } @@ -8655,7 +8568,6 @@ index 1d66c73..c01b9cb 100644 + GdmGreeterLoginWindow *login_window) { char *user_name; -- guint mode; + char *item_id; user_name = gdm_user_chooser_widget_get_chosen_user_name (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser)); @@ -8698,7 +8610,7 @@ index 1d66c73..c01b9cb 100644 } static void -@@ -1222,11 +1652,74 @@ create_computer_info (GdmGreeterLoginWindow *login_window) +@@ -1220,11 +1651,74 @@ create_computer_info (GdmGreeterLoginWindow *login_window) #define INVISIBLE_CHAR_BULLET 0x2022 #define INVISIBLE_CHAR_NONE 0 @@ -8774,7 +8686,7 @@ index 1d66c73..c01b9cb 100644 int i; for (i = 0; i < G_N_ELEMENTS (types); i++) { -@@ -1237,7 +1730,6 @@ register_custom_types (GdmGreeterLoginWindow *login_window) +@@ -1235,7 +1729,6 @@ register_custom_types (GdmGreeterLoginWindow *login_window) static void load_theme (GdmGreeterLoginWindow *login_window) { @@ -8782,7 +8694,7 @@ index 1d66c73..c01b9cb 100644 GtkWidget *button; GtkWidget *box; GtkWidget *image; -@@ -1290,7 +1782,7 @@ load_theme (GdmGreeterLoginWindow *login_window) +@@ -1288,7 +1781,7 @@ load_theme (GdmGreeterLoginWindow *login_window) login_window); g_signal_connect (login_window->priv->user_chooser, "activated", @@ -8791,7 +8703,7 @@ index 1d66c73..c01b9cb 100644 login_window); g_signal_connect (login_window->priv->user_chooser, "deactivated", -@@ -1302,30 +1794,30 @@ load_theme (GdmGreeterLoginWindow *login_window) +@@ -1300,30 +1793,30 @@ load_theme (GdmGreeterLoginWindow *login_window) G_CALLBACK (on_user_chooser_visibility_changed), login_window); @@ -8835,9 +8747,9 @@ index 1d66c73..c01b9cb 100644 gdm_profile_end (NULL); } -@@ -1481,6 +1973,15 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) - widget_class->key_press_event = gdm_greeter_login_window_key_press_event; - widget_class->size_request = gdm_greeter_login_window_size_request; +@@ -1520,6 +2013,15 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) + + gtk_container_class_handle_border_width (container_class); + signals [START_CONVERSATION] = + g_signal_new ("start-conversation", @@ -8851,7 +8763,7 @@ index 1d66c73..c01b9cb 100644 signals [BEGIN_AUTO_LOGIN] = g_signal_new ("begin-auto-login", G_TYPE_FROM_CLASS (object_class), -@@ -1497,9 +1998,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) +@@ -1536,9 +2038,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, begin_verification), NULL, NULL, @@ -8863,7 +8775,7 @@ index 1d66c73..c01b9cb 100644 signals [BEGIN_VERIFICATION_FOR_USER] = g_signal_new ("begin-verification-for-user", G_TYPE_FROM_CLASS (object_class), -@@ -1507,9 +2008,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) +@@ -1546,9 +2048,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, begin_verification_for_user), NULL, NULL, @@ -8875,7 +8787,7 @@ index 1d66c73..c01b9cb 100644 signals [QUERY_ANSWER] = g_signal_new ("query-answer", G_TYPE_FROM_CLASS (object_class), -@@ -1517,9 +2018,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) +@@ -1556,9 +2058,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, query_answer), NULL, NULL, @@ -8887,7 +8799,7 @@ index 1d66c73..c01b9cb 100644 signals [USER_SELECTED] = g_signal_new ("user-selected", G_TYPE_FROM_CLASS (object_class), -@@ -1557,9 +2058,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) +@@ -1596,9 +2098,9 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass) G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, start_session), NULL, NULL, @@ -8899,7 +8811,7 @@ index 1d66c73..c01b9cb 100644 g_object_class_install_property (object_class, PROP_DISPLAY_IS_LOCAL, -@@ -1612,6 +2113,246 @@ on_gconf_key_changed (GConfClient *client, +@@ -1651,6 +2153,246 @@ on_gconf_key_changed (GConfClient *client, } } @@ -8976,7 +8888,7 @@ index 1d66c73..c01b9cb 100644 + GtkAction *action; + char *text; + -+ action = gtk_widget_get_action (button); ++ action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)); + + g_object_get (G_OBJECT (action), "label", &text, NULL); + @@ -8990,7 +8902,7 @@ index 1d66c73..c01b9cb 100644 + GtkAction *action; + GtkWidget *image; + -+ action = gtk_widget_get_action (button); ++ action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)); + + if (gtk_action_get_is_important (action)) { + image = gtk_action_create_icon (GTK_ACTION (action), GTK_ICON_SIZE_BUTTON); @@ -9008,7 +8920,7 @@ index 1d66c73..c01b9cb 100644 + GtkAction *action; + char *text; + -+ action = gtk_widget_get_action (button); ++ action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)); + + g_object_get (G_OBJECT (action), "tooltip", &text, NULL); + @@ -9023,7 +8935,7 @@ index 1d66c73..c01b9cb 100644 + + button = gtk_button_new (); + -+ gtk_action_connect_proxy (GTK_ACTION (action), button); ++ gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action); + + g_signal_connect_swapped (action, + "notify::label", @@ -9044,7 +8956,7 @@ index 1d66c73..c01b9cb 100644 + + if (strcmp (gtk_action_get_name (action), + GDM_CONVERSATION_DEFAULT_ACTION) == 0) { -+ GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); ++ gtk_widget_set_can_default (button, TRUE); + } + + return button; @@ -9237,7 +9149,7 @@ index 504b075..041cbc4 100644 G_END_DECLS diff --git a/gui/simple-greeter/gdm-greeter-login-window.ui b/gui/simple-greeter/gdm-greeter-login-window.ui -index 83375ed..35195d8 100644 +index 946ec6b..2c181a3 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.ui +++ b/gui/simple-greeter/gdm-greeter-login-window.ui @@ -158,69 +158,40 @@ @@ -9657,7 +9569,7 @@ index 0000000..904c231 + +#endif diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c -index b7e7f1c..051a5cc 100644 +index fa2d8e6..2598283 100644 --- a/gui/simple-greeter/gdm-greeter-session.c +++ b/gui/simple-greeter/gdm-greeter-session.c @@ -39,6 +39,8 @@ @@ -9705,34 +9617,38 @@ index b7e7f1c..051a5cc 100644 } static void -@@ -96,7 +109,19 @@ on_ready (GdmGreeterClient *client, +@@ -96,40 +109,30 @@ on_ready (GdmGreeterClient *client, { g_debug ("GdmGreeterSession: Ready"); - gdm_greeter_login_window_ready (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window)); + gdm_greeter_login_window_ready (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), + service_name); -+} -+ -+static void + } + + static void +-on_reset (GdmGreeterClient *client, +- GdmGreeterSession *session) +on_conversation_stopped (GdmGreeterClient *client, + const char *service_name, + GdmGreeterSession *session) -+{ + { +- g_debug ("GdmGreeterSession: Reset"); + g_debug ("GdmGreeterSession: Conversation '%s' stopped", service_name); -+ + +- session->priv->num_tries = 0; +- +- gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window)); + gdm_greeter_login_window_conversation_stopped (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), + service_name); } static void -@@ -112,29 +137,6 @@ on_reset (GdmGreeterClient *client, - } - - static void -on_authentication_failed (GdmGreeterClient *client, - GdmGreeterSession *session) --{ ++on_reset (GdmGreeterClient *client, ++ GdmGreeterSession *session) + { - g_debug ("GdmGreeterSession: Authentication failed"); - - session->priv->num_tries++; @@ -9740,23 +9656,22 @@ index b7e7f1c..051a5cc 100644 - if (session->priv->num_tries < MAX_LOGIN_TRIES) { - g_debug ("GdmGreeterSession: Retrying login (%d)", - session->priv->num_tries); -- ++ g_debug ("GdmGreeterSession: Reset"); + - gdm_greeter_login_window_authentication_failed (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window)); - } else { - g_debug ("GdmGreeterSession: Maximum number of login tries exceeded (%d) - resetting", - session->priv->num_tries - 1); - session->priv->num_tries = 0; -- -- gdm_greeter_panel_reset (GDM_GREETER_PANEL (session->priv->panel)); ++ session->priv->num_tries = 0; + - gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window)); - } --} -- --static void - show_or_hide_user_options (GdmGreeterSession *session, - const char *username) - { -@@ -196,10 +198,11 @@ on_timed_login_requested (GdmGreeterClient *client, ++ gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window)); + } + + static void +@@ -180,10 +183,11 @@ on_timed_login_requested (GdmGreeterClient *client, static void on_user_authorized (GdmGreeterClient *client, @@ -9769,7 +9684,7 @@ index b7e7f1c..051a5cc 100644 } static void -@@ -210,7 +213,7 @@ on_info_query (GdmGreeterClient *client, +@@ -194,7 +198,7 @@ on_info_query (GdmGreeterClient *client, { g_debug ("GdmGreeterSession: Info query: %s", text); @@ -9778,7 +9693,7 @@ index b7e7f1c..051a5cc 100644 } static void -@@ -221,10 +224,18 @@ on_secret_info_query (GdmGreeterClient *client, +@@ -205,10 +209,18 @@ on_secret_info_query (GdmGreeterClient *client, { g_debug ("GdmGreeterSession: Secret info query: %s", text); @@ -9798,7 +9713,7 @@ index b7e7f1c..051a5cc 100644 on_begin_auto_login (GdmGreeterLoginWindow *login_window, const char *username, GdmGreeterSession *session) -@@ -235,29 +246,32 @@ on_begin_auto_login (GdmGreeterLoginWindow *login_window, +@@ -219,29 +231,32 @@ on_begin_auto_login (GdmGreeterLoginWindow *login_window, static void on_begin_verification (GdmGreeterLoginWindow *login_window, @@ -9834,15 +9749,15 @@ index b7e7f1c..051a5cc 100644 text); } -@@ -301,7 +315,6 @@ on_cancelled (GdmGreeterLoginWindow *login_window, +@@ -276,7 +291,6 @@ on_cancelled (GdmGreeterLoginWindow *login_window, + GdmGreeterSession *session) { - gdm_greeter_panel_hide_user_options (GDM_GREETER_PANEL (session->priv->panel)); gdm_greeter_client_call_cancel (session->priv->client); - gdm_greeter_client_call_start_conversation (session->priv->client, "gdm"); } static void -@@ -313,9 +326,10 @@ on_disconnected (GdmGreeterLoginWindow *login_window, +@@ -288,9 +302,10 @@ on_disconnected (GdmGreeterLoginWindow *login_window, static void on_start_session (GdmGreeterLoginWindow *login_window, @@ -9854,7 +9769,7 @@ index b7e7f1c..051a5cc 100644 } static int -@@ -410,7 +424,10 @@ toggle_login_window (GdmGreeterSession *session, +@@ -380,7 +395,10 @@ toggle_login_window (GdmGreeterSession *session, is_local = gdm_greeter_client_get_display_is_local (session->priv->client); g_debug ("GdmGreeterSession: Starting a login window local:%d", is_local); session->priv->login_window = gdm_greeter_login_window_new (is_local); @@ -9866,7 +9781,7 @@ index b7e7f1c..051a5cc 100644 g_signal_connect (session->priv->login_window, "begin-auto-login", G_CALLBACK (on_begin_auto_login), -@@ -466,8 +483,6 @@ gdm_greeter_session_start (GdmGreeterSession *session, +@@ -436,8 +454,6 @@ gdm_greeter_session_start (GdmGreeterSession *session, toggle_panel (session, TRUE); toggle_login_window (session, TRUE); @@ -9875,7 +9790,7 @@ index b7e7f1c..051a5cc 100644 gdm_profile_end (NULL); return res; -@@ -577,6 +592,64 @@ gdm_greeter_session_event_handler (GdkEvent *event, +@@ -547,6 +563,64 @@ gdm_greeter_session_event_handler (GdkEvent *event, } static void @@ -9940,7 +9855,7 @@ index b7e7f1c..051a5cc 100644 gdm_greeter_session_init (GdmGreeterSession *session) { gdm_profile_start (NULL); -@@ -601,16 +674,20 @@ gdm_greeter_session_init (GdmGreeterSession *session) +@@ -571,16 +645,20 @@ gdm_greeter_session_init (GdmGreeterSession *session) G_CALLBACK (on_problem), session); g_signal_connect (session->priv->client, @@ -9965,7 +9880,7 @@ index b7e7f1c..051a5cc 100644 session); g_signal_connect (session->priv->client, "selected-user-changed", -@@ -643,6 +720,8 @@ gdm_greeter_session_init (GdmGreeterSession *session) +@@ -609,6 +687,8 @@ gdm_greeter_session_init (GdmGreeterSession *session) gdk_event_handler_set ((GdkEventFunc) gdm_greeter_session_event_handler, session, NULL); @@ -10532,7 +10447,7 @@ index 0000000..f181140 +#endif /* __GDM_PLUGIN_MANAGER_H */ diff --git a/gui/simple-greeter/gdm-task-list.c b/gui/simple-greeter/gdm-task-list.c new file mode 100644 -index 0000000..a7f8c74 +index 0000000..5fdc2b8 --- /dev/null +++ b/gui/simple-greeter/gdm-task-list.c @@ -0,0 +1,385 @@ @@ -10879,14 +10794,14 @@ index 0000000..a7f8c74 + return FALSE; + } + -+ was_sensitive = GTK_WIDGET_SENSITIVE (widget); ++ was_sensitive = gtk_widget_get_sensitive (GTK_WIDGET (widget)); + gtk_widget_set_sensitive (GTK_WIDGET (widget), TRUE); + + button = GTK_WIDGET (g_object_get_data (G_OBJECT (task), + "gdm-task-list-button")); + + was_activated = FALSE; -+ if (GTK_WIDGET_IS_SENSITIVE (button)) { ++ if (gtk_widget_is_sensitive (button)) { + if (gtk_widget_activate (button)) { + was_activated = TRUE; + } @@ -10923,7 +10838,7 @@ index 0000000..a7f8c74 +} diff --git a/gui/simple-greeter/gdm-task-list.h b/gui/simple-greeter/gdm-task-list.h new file mode 100644 -index 0000000..1c15168 +index 0000000..cc377bd --- /dev/null +++ b/gui/simple-greeter/gdm-task-list.h @@ -0,0 +1,85 @@ @@ -10952,7 +10867,7 @@ index 0000000..1c15168 + +#include +#include -+#include ++#include + +#include "gdm-task.h" + @@ -11013,7 +10928,7 @@ index 0000000..1c15168 + +#endif /* __GDM_TASK_LIST_H */ diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c -index 19a7922..daa55fc 100644 +index 9447e59..136194a 100644 --- a/gui/simple-greeter/gdm-user-chooser-widget.c +++ b/gui/simple-greeter/gdm-user-chooser-widget.c @@ -371,9 +371,30 @@ gdm_user_chooser_widget_set_show_user_auto (GdmUserChooserWidget *widget, @@ -11786,10 +11701,10 @@ index 0000000..c0390db +SUBDIRS = password diff --git a/gui/simple-greeter/plugins/password/Makefile.am b/gui/simple-greeter/plugins/password/Makefile.am new file mode 100644 -index 0000000..764904d +index 0000000..5a81499 --- /dev/null +++ b/gui/simple-greeter/plugins/password/Makefile.am -@@ -0,0 +1,53 @@ +@@ -0,0 +1,52 @@ +NULL = +PAM_SERVICE_NAME = gdm-password + @@ -11798,7 +11713,6 @@ index 0000000..764904d + +AM_CPPFLAGS = \ + -I$(top_srcdir)/common \ -+ -I$(top_srcdir)/gui/simple-greeter/libnotificationarea \ + -I$(top_srcdir)/gui/simple-greeter/libgdmsimplegreeter \ + -DDMCONFDIR=\""$(dmconfdir)"\" \ + -DGDMCONFDIR=\"$(gdmconfdir)\" \ @@ -12374,22 +12288,22 @@ index 0000000..9b87c67 + return GDM_GREETER_EXTENSION (extension); +} diff --git a/po/POTFILES.in b/po/POTFILES.in -index 1fccb90..7c344c9 100644 +index 8a4997a..2f9af97 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in -@@ -84,6 +84,7 @@ gui/simple-greeter/gdm-timer.c +@@ -81,6 +81,7 @@ gui/simple-greeter/gdm-timer.c gui/simple-greeter/gdm-user.c gui/simple-greeter/gdm-user-chooser-widget.c gui/simple-greeter/greeter-main.c +gui/simple-greeter/plugins/password/gdm-password-extension.c - gui/user-switch-applet/applet.c - gui/user-switch-applet/gdm-entry-menu-item.c - gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in + utils/gdmflexiserver.c + utils/gdm-screenshot.c + -- -1.7.3.3 +1.7.3.5 -From 8550523cb6c1cfed48de6260b3da659e0842fa85 Mon Sep 17 00:00:00 2001 +From 217e0220c15422aab41cdfad5d989de074010730 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Aug 2010 18:25:50 -0400 Subject: [PATCH 18/35] squash with password @@ -12451,10 +12365,10 @@ index 255283e..11a171c 100644 static void -- -1.7.3.3 +1.7.3.5 -From bb31f1696b0875d6d8e6e81acf11f51900d1dacd Mon Sep 17 00:00:00 2001 +From 99c3dbfc20ff02993608f69af6095a3043185a9d Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Aug 2010 11:13:10 -0400 Subject: [PATCH 19/35] task list fix @@ -12464,7 +12378,7 @@ Subject: [PATCH 19/35] task list fix 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gui/simple-greeter/gdm-task-list.c b/gui/simple-greeter/gdm-task-list.c -index a7f8c74..906938d 100644 +index 5fdc2b8..3e49fb7 100644 --- a/gui/simple-greeter/gdm-task-list.c +++ b/gui/simple-greeter/gdm-task-list.c @@ -68,7 +68,6 @@ on_task_toggled (GdmTaskList *widget, @@ -12501,10 +12415,10 @@ index a7f8c74..906938d 100644 button = g_object_get_data (G_OBJECT (task), "gdm-task-list-button"); -- -1.7.3.3 +1.7.3.5 -From 4902b18b3eb6fb6cbf820909f33987473928fe29 Mon Sep 17 00:00:00 2001 +From dab8b62d3ec1a7c041e87106488a0b3d4661bcf8 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 29 Jun 2010 14:13:35 -0400 Subject: [PATCH 20/35] Show cancel button after first message @@ -12517,10 +12431,10 @@ that message isn't asking for input. 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index c01b9cb..a0e8936 100644 +index 73a9918..3fcfcce 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -826,6 +826,7 @@ reset_dialog (GdmGreeterLoginWindow *login_window, +@@ -825,6 +825,7 @@ reset_dialog (GdmGreeterLoginWindow *login_window, switch_mode (login_window, dialog_mode); } @@ -12528,7 +12442,7 @@ index c01b9cb..a0e8936 100644 set_sensitive (login_window, TRUE); set_ready (login_window); set_focus (GDM_GREETER_LOGIN_WINDOW (login_window)); -@@ -977,6 +978,7 @@ gdm_greeter_login_window_info (GdmGreeterLoginWindow *login_window, +@@ -976,6 +977,7 @@ gdm_greeter_login_window_info (GdmGreeterLoginWindow *login_window, g_return_val_if_fail (GDM_IS_GREETER_LOGIN_WINDOW (login_window), FALSE); g_debug ("GdmGreeterLoginWindow: info: %s", text); @@ -12536,7 +12450,7 @@ index c01b9cb..a0e8936 100644 task = find_task_with_service_name (login_window, service_name); if (task != NULL) { -@@ -999,6 +1001,7 @@ gdm_greeter_login_window_problem (GdmGreeterLoginWindow *login_window, +@@ -998,6 +1000,7 @@ gdm_greeter_login_window_problem (GdmGreeterLoginWindow *login_window, g_return_val_if_fail (GDM_IS_GREETER_LOGIN_WINDOW (login_window), FALSE); g_debug ("GdmGreeterLoginWindow: problem: %s", text); @@ -12545,10 +12459,10 @@ index c01b9cb..a0e8936 100644 if (task != NULL) { -- -1.7.3.3 +1.7.3.5 -From 626e4b4bd340b961713b32258828ac8d602e01c7 Mon Sep 17 00:00:00 2001 +From 2b0d305e443e92d36850c95f680c355eb6b5e0cb Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 28 Oct 2009 11:13:10 -0400 Subject: [PATCH 21/35] Prevent start session signal handler from getting called multiple times @@ -12559,10 +12473,10 @@ It was causing a double free. 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index a0e8936..151164e 100644 +index 3fcfcce..c3725e5 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -1086,8 +1086,17 @@ on_ready_to_start_session (GdmGreeterLoginWindow *login_window, +@@ -1085,8 +1085,17 @@ on_ready_to_start_session (GdmGreeterLoginWindow *login_window, GParamSpec *param_spec, char *service_name) { @@ -12581,10 +12495,10 @@ index a0e8936..151164e 100644 static void -- -1.7.3.3 +1.7.3.5 -From fecee605d0eeeafbefc768cb3e463c3eb5beed19 Mon Sep 17 00:00:00 2001 +From 2c6efe87539d7b2d2542829093a3cb5f6ed4b916 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Feb 2009 16:25:47 -0500 Subject: [PATCH 22/35] Add fingerprint plugin @@ -12594,7 +12508,7 @@ fingerprint scans. --- configure.ac | 4 + gui/simple-greeter/plugins/Makefile.am | 2 +- - gui/simple-greeter/plugins/fingerprint/Makefile.am | 56 ++++ + gui/simple-greeter/plugins/fingerprint/Makefile.am | 55 +++ .../fingerprint/gdm-fingerprint-extension.c | 347 ++++++++++++++++++++ .../fingerprint/gdm-fingerprint-extension.h | 56 ++++ .../plugins/fingerprint/gdm-fingerprint.pam | 17 + @@ -12606,7 +12520,7 @@ fingerprint scans. gui/simple-greeter/plugins/fingerprint/page.ui | 57 ++++ gui/simple-greeter/plugins/fingerprint/plugin.c | 40 +++ po/POTFILES.in | 1 + - 14 files changed, 590 insertions(+), 1 deletions(-) + 14 files changed, 589 insertions(+), 1 deletions(-) create mode 100644 gui/simple-greeter/plugins/fingerprint/Makefile.am create mode 100644 gui/simple-greeter/plugins/fingerprint/gdm-fingerprint-extension.c create mode 100644 gui/simple-greeter/plugins/fingerprint/gdm-fingerprint-extension.h @@ -12620,10 +12534,10 @@ fingerprint scans. create mode 100644 gui/simple-greeter/plugins/fingerprint/plugin.c diff --git a/configure.ac b/configure.ac -index 8c8b74d..911864e 100644 +index 8a423bb..be1ff01 100644 --- a/configure.ac +++ b/configure.ac -@@ -1445,6 +1445,10 @@ gui/simple-greeter/libgdmsimplegreeter/Makefile +@@ -1439,6 +1439,10 @@ gui/simple-greeter/libgdmsimplegreeter/Makefile gui/simple-greeter/libgdmsimplegreeter/gdmsimplegreeter.pc gui/simple-greeter/plugins/Makefile gui/simple-greeter/plugins/password/Makefile @@ -12632,8 +12546,8 @@ index 8c8b74d..911864e 100644 +gui/simple-greeter/plugins/fingerprint/icons/16x16/Makefile +gui/simple-greeter/plugins/fingerprint/icons/48x48/Makefile gui/simple-chooser/Makefile - gui/user-switch-applet/Makefile utils/Makefile + data/gdm.conf diff --git a/gui/simple-greeter/plugins/Makefile.am b/gui/simple-greeter/plugins/Makefile.am index c0390db..9811a68 100644 --- a/gui/simple-greeter/plugins/Makefile.am @@ -12643,10 +12557,10 @@ index c0390db..9811a68 100644 +SUBDIRS = password fingerprint diff --git a/gui/simple-greeter/plugins/fingerprint/Makefile.am b/gui/simple-greeter/plugins/fingerprint/Makefile.am new file mode 100644 -index 0000000..25fb6e8 +index 0000000..ec8b326 --- /dev/null +++ b/gui/simple-greeter/plugins/fingerprint/Makefile.am -@@ -0,0 +1,56 @@ +@@ -0,0 +1,55 @@ +SUBDIRS = icons + +NULL = @@ -12657,7 +12571,6 @@ index 0000000..25fb6e8 + +AM_CPPFLAGS = \ + -I$(top_srcdir)/common \ -+ -I$(top_srcdir)/gui/simple-greeter/libnotificationarea \ + -I$(top_srcdir)/gui/simple-greeter/libgdmsimplegreeter \ + -DDMCONFDIR=\""$(dmconfdir)"\" \ + -DGDMCONFDIR=\"$(gdmconfdir)\" \ @@ -13340,22 +13253,22 @@ index 0000000..5ea9925 + return GDM_GREETER_EXTENSION (extension); +} diff --git a/po/POTFILES.in b/po/POTFILES.in -index 7c344c9..dd08b21 100644 +index 2f9af97..4f5b317 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in -@@ -85,6 +85,7 @@ gui/simple-greeter/gdm-user.c +@@ -82,6 +82,7 @@ gui/simple-greeter/gdm-user.c gui/simple-greeter/gdm-user-chooser-widget.c gui/simple-greeter/greeter-main.c gui/simple-greeter/plugins/password/gdm-password-extension.c +gui/simple-greeter/plugins/fingerprint/gdm-fingerprint-extension.c - gui/user-switch-applet/applet.c - gui/user-switch-applet/gdm-entry-menu-item.c - gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in + utils/gdmflexiserver.c + utils/gdm-screenshot.c + -- -1.7.3.3 +1.7.3.5 -From 440055f84d48b8ccbffb054f02250a3e1be74e3f Mon Sep 17 00:00:00 2001 +From 425aedf9e39847eaaa73accd19de5f548c4b580f Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Feb 2009 16:25:47 -0500 Subject: [PATCH 23/35] Add smartcard plugin @@ -13365,7 +13278,7 @@ smartcards are inserted. --- configure.ac | 11 + gui/simple-greeter/plugins/Makefile.am | 2 +- - gui/simple-greeter/plugins/smartcard/Makefile.am | 77 + + gui/simple-greeter/plugins/smartcard/Makefile.am | 76 + .../plugins/smartcard/gdm-smartcard-extension.c | 510 +++++++ .../plugins/smartcard/gdm-smartcard-extension.h | 56 + .../plugins/smartcard/gdm-smartcard-manager.c | 1521 ++++++++++++++++++++ @@ -13382,7 +13295,7 @@ smartcards are inserted. gui/simple-greeter/plugins/smartcard/page.ui | 57 + gui/simple-greeter/plugins/smartcard/plugin.c | 40 + po/POTFILES.in | 3 + - 19 files changed, 3225 insertions(+), 1 deletions(-) + 19 files changed, 3224 insertions(+), 1 deletions(-) create mode 100644 gui/simple-greeter/plugins/smartcard/Makefile.am create mode 100644 gui/simple-greeter/plugins/smartcard/gdm-smartcard-extension.c create mode 100644 gui/simple-greeter/plugins/smartcard/gdm-smartcard-extension.h @@ -13401,18 +13314,18 @@ smartcards are inserted. create mode 100644 gui/simple-greeter/plugins/smartcard/plugin.c diff --git a/configure.ac b/configure.ac -index 911864e..95c623d 100644 +index be1ff01..1048e3c 100644 --- a/configure.ac +++ b/configure.ac -@@ -67,6 +67,7 @@ LIBCANBERRA_GTK_REQUIRED_VERSION=0.4 - #FONTCONFIG_REQUIRED_VERSION=2.6.0 +@@ -68,6 +68,7 @@ LIBCANBERRA_GTK_REQUIRED_VERSION=0.4 FONTCONFIG_REQUIRED_VERSION=2.5.0 UPOWER_REQUIRED_VERSION=0.9.0 + ACCOUNTS_SERVICE_REQUIRED_VERSION=0.6.3 +NSS_REQUIRED_VERSION=3.11.1 EXTRA_COMPILE_WARNINGS(yes) -@@ -90,6 +91,12 @@ PKG_CHECK_MODULES(DAEMON, +@@ -92,6 +93,12 @@ PKG_CHECK_MODULES(DAEMON, AC_SUBST(DAEMON_CFLAGS) AC_SUBST(DAEMON_LIBS) @@ -13425,7 +13338,7 @@ index 911864e..95c623d 100644 PKG_CHECK_MODULES(XLIB, x11 xau, , [AC_PATH_XTRA if test "x$no_x" = xyes; then -@@ -1449,6 +1456,10 @@ gui/simple-greeter/plugins/fingerprint/Makefile +@@ -1443,6 +1450,10 @@ gui/simple-greeter/plugins/fingerprint/Makefile gui/simple-greeter/plugins/fingerprint/icons/Makefile gui/simple-greeter/plugins/fingerprint/icons/16x16/Makefile gui/simple-greeter/plugins/fingerprint/icons/48x48/Makefile @@ -13434,8 +13347,8 @@ index 911864e..95c623d 100644 +gui/simple-greeter/plugins/smartcard/icons/16x16/Makefile +gui/simple-greeter/plugins/smartcard/icons/48x48/Makefile gui/simple-chooser/Makefile - gui/user-switch-applet/Makefile utils/Makefile + data/gdm.conf diff --git a/gui/simple-greeter/plugins/Makefile.am b/gui/simple-greeter/plugins/Makefile.am index 9811a68..3dd336f 100644 --- a/gui/simple-greeter/plugins/Makefile.am @@ -13445,10 +13358,10 @@ index 9811a68..3dd336f 100644 +SUBDIRS = password fingerprint smartcard diff --git a/gui/simple-greeter/plugins/smartcard/Makefile.am b/gui/simple-greeter/plugins/smartcard/Makefile.am new file mode 100644 -index 0000000..1ccebda +index 0000000..e43e424 --- /dev/null +++ b/gui/simple-greeter/plugins/smartcard/Makefile.am -@@ -0,0 +1,77 @@ +@@ -0,0 +1,76 @@ +SUBDIRS = icons + +NULL = @@ -13459,7 +13372,6 @@ index 0000000..1ccebda + +AM_CPPFLAGS = \ + -I$(top_srcdir)/common \ -+ -I$(top_srcdir)/gui/simple-greeter/libnotificationarea \ + -I$(top_srcdir)/gui/simple-greeter/libgdmsimplegreeter \ + -DDMCONFDIR=\""$(dmconfdir)"\" \ + -DGDMCONFDIR=\"$(gdmconfdir)\" \ @@ -16855,24 +16767,24 @@ index 0000000..fffbd50 + return GDM_GREETER_EXTENSION (extension); +} diff --git a/po/POTFILES.in b/po/POTFILES.in -index dd08b21..ed922a5 100644 +index 4f5b317..48634f1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in -@@ -86,6 +86,9 @@ gui/simple-greeter/gdm-user-chooser-widget.c +@@ -83,6 +83,9 @@ gui/simple-greeter/gdm-user-chooser-widget.c gui/simple-greeter/greeter-main.c gui/simple-greeter/plugins/password/gdm-password-extension.c gui/simple-greeter/plugins/fingerprint/gdm-fingerprint-extension.c +gui/simple-greeter/plugins/smartcard/gdm-smartcard-extension.c +gui/simple-greeter/plugins/smartcard/gdm-smartcard-manager.c +gui/simple-greeter/plugins/smartcard/gdm-smartcard.c - gui/user-switch-applet/applet.c - gui/user-switch-applet/gdm-entry-menu-item.c - gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in + utils/gdmflexiserver.c + utils/gdm-screenshot.c + -- -1.7.3.3 +1.7.3.5 -From b7f8fa13fab5be9c3832bdf2c0d0c6f06d78adb8 Mon Sep 17 00:00:00 2001 +From 2b331280871f3c0d56fa46eae3c20940bda1ed5d Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Aug 2010 18:26:01 -0400 Subject: [PATCH 24/35] squash with smartcard @@ -16910,10 +16822,10 @@ index b925f5e..b40a21c 100644 static void -- -1.7.3.3 +1.7.3.5 -From 96db16e70a1614a7857b99b1e3f3dda11b725490 Mon Sep 17 00:00:00 2001 +From 07882809ff1b9dc0df7d2cf95b5f290894527135 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 21 Apr 2009 10:25:18 -0400 Subject: [PATCH 25/35] When one PAM conversation wins, stop the others @@ -16926,10 +16838,10 @@ e.g. two factor authentication. 2 files changed, 53 insertions(+), 20 deletions(-) diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index 832b870..3c512c0 100644 +index 9268bc5..0f0c053 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c -@@ -2370,6 +2370,47 @@ gdm_session_direct_open_session (GdmSession *session, +@@ -2268,6 +2268,47 @@ gdm_session_direct_open_session (GdmSession *session, } static void @@ -16977,7 +16889,7 @@ index 832b870..3c512c0 100644 gdm_session_direct_start_session (GdmSession *session, const char *service_name) { -@@ -2381,6 +2422,16 @@ gdm_session_direct_start_session (GdmSession *session, +@@ -2279,6 +2320,16 @@ gdm_session_direct_start_session (GdmSession *session, g_return_if_fail (session != NULL); g_return_if_fail (impl->priv->is_running == FALSE); @@ -16994,7 +16906,7 @@ index 832b870..3c512c0 100644 command = get_session_command (impl); if (gdm_session_direct_bypasses_xsession (impl)) { -@@ -2391,8 +2442,6 @@ gdm_session_direct_start_session (GdmSession *session, +@@ -2289,8 +2340,6 @@ gdm_session_direct_start_session (GdmSession *session, g_free (command); @@ -17003,7 +16915,7 @@ index 832b870..3c512c0 100644 setup_session_environment (impl); send_environment (impl, conversation); -@@ -2403,23 +2452,7 @@ gdm_session_direct_start_session (GdmSession *session, +@@ -2301,23 +2350,7 @@ gdm_session_direct_start_session (GdmSession *session, static void stop_all_conversations (GdmSessionDirect *session) { @@ -17029,7 +16941,7 @@ index 832b870..3c512c0 100644 static void diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c -index c49e6c7..16ae9c8 100644 +index b77f0c7..ce7a28a 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -669,7 +669,7 @@ on_session_conversation_stopped (GdmSession *session, @@ -17042,10 +16954,10 @@ index c49e6c7..16ae9c8 100644 service_name); if (! res) { -- -1.7.3.3 +1.7.3.5 -From 920d71b3af3731e5177105cf31be2ee139ad9426 Mon Sep 17 00:00:00 2001 +From b5f27adffed1a3aed6515db9eaa8349076a33df0 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 24 Jul 2009 14:41:48 -0400 Subject: [PATCH 26/35] KILL stuck processes if they don't die on TERM @@ -17166,10 +17078,10 @@ index be85f30..8b93663 100644 if (WIFEXITED (exit_status) && (WEXITSTATUS (exit_status) != 0)) { g_debug ("GdmSessionWorkerJob: Wait on child process failed"); -- -1.7.3.3 +1.7.3.5 -From 34dc9718c517688df3bb60d2ee8c50417bf0fc5d Mon Sep 17 00:00:00 2001 +From ceb37ad333855ebdf460447165ef098a7f9e8142 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 13 Jul 2010 22:36:19 -0400 Subject: [PATCH 27/35] add better debug spew (needs squash) @@ -17179,10 +17091,10 @@ Subject: [PATCH 27/35] add better debug spew (needs squash) 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index 3c512c0..53d26df 100644 +index 0f0c053..23812d2 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c -@@ -210,7 +210,7 @@ find_conversation_by_name (GdmSessionDirect *session, +@@ -208,7 +208,7 @@ find_conversation_by_name (GdmSessionDirect *session, conversation = g_hash_table_lookup (session->priv->conversations, service_name); if (conversation == NULL) { @@ -17191,7 +17103,7 @@ index 3c512c0..53d26df 100644 } return conversation; -@@ -1800,7 +1800,7 @@ static void +@@ -1715,7 +1715,7 @@ static void free_conversation (GdmSessionConversation *conversation) { if (conversation->job != NULL) { @@ -17200,7 +17112,7 @@ index 3c512c0..53d26df 100644 } g_free (conversation->service_name); -@@ -1973,7 +1973,7 @@ gdm_session_direct_start_conversation (GdmSession *session, +@@ -1888,7 +1888,7 @@ gdm_session_direct_start_conversation (GdmSession *session, g_return_if_fail (session != NULL); @@ -17209,7 +17121,7 @@ index 3c512c0..53d26df 100644 conversation = start_conversation (impl, service_name); -@@ -1990,7 +1990,7 @@ gdm_session_direct_stop_conversation (GdmSession *session, +@@ -1905,7 +1905,7 @@ gdm_session_direct_stop_conversation (GdmSession *session, g_return_if_fail (session != NULL); @@ -17219,10 +17131,10 @@ index 3c512c0..53d26df 100644 conversation = find_conversation_by_name (impl, service_name); -- -1.7.3.3 +1.7.3.5 -From c6e70b135f6dae4faeb522145b4e0eb94cafb551 Mon Sep 17 00:00:00 2001 +From f0e6178772a8baaac7a07a3197dd42933130a76c Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 13 Jul 2010 22:37:35 -0400 Subject: [PATCH 28/35] switch to proper mode when going to timed login @@ -17232,10 +17144,10 @@ Subject: [PATCH 28/35] switch to proper mode when going to timed login 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 151164e..b741977 100644 +index c3725e5..badafd4 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -1384,7 +1384,7 @@ begin_auto_login (GdmGreeterLoginWindow *login_window) +@@ -1383,7 +1383,7 @@ begin_auto_login (GdmGreeterLoginWindow *login_window) /* just wait for the user to select language and stuff */ set_message (login_window, _("Select language and click Log In")); @@ -17245,10 +17157,10 @@ index 151164e..b741977 100644 show_widget (login_window, "conversation-list", FALSE); gdm_task_list_foreach_task (GDM_TASK_LIST (login_window->priv->conversation_list), -- -1.7.3.3 +1.7.3.5 -From c49e4e49d5121bd254ba3fb6a3de0dedb7cfaaa8 Mon Sep 17 00:00:00 2001 +From 9b3dc6be1460e9bf11333afe83fdd5709934f09a Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 3 Aug 2010 15:21:26 -0400 Subject: [PATCH 29/35] Drop "Cancelling" message for plugin initiated cancels @@ -17261,10 +17173,10 @@ but for now just drop the message. 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index b741977..c33b871 100644 +index badafd4..ddb35a9 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -2148,7 +2148,7 @@ static void +@@ -2188,7 +2188,7 @@ static void on_conversation_cancel (GdmGreeterLoginWindow *login_window, GdmConversation *conversation) { @@ -17274,33 +17186,32 @@ index b741977..c33b871 100644 static gboolean -- -1.7.3.3 +1.7.3.5 -From 7c67d095efda02e9ebee00ad93d99d8de54d334e Mon Sep 17 00:00:00 2001 +From 410b4c9c3398b835548b67ec89881ec44b7cd941 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Aug 2010 18:11:27 -0400 Subject: [PATCH 30/35] drop code for label that doesn't exist anymore --- - gui/simple-greeter/gdm-greeter-login-window.c | 6 ------ - 1 files changed, 0 insertions(+), 6 deletions(-) + gui/simple-greeter/gdm-greeter-login-window.c | 5 ----- + 1 files changed, 0 insertions(+), 5 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index c33b871..05e06bc 100644 +index ddb35a9..7d63761 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c -@@ -776,9 +776,6 @@ static void +@@ -776,8 +776,6 @@ static void reset_dialog (GdmGreeterLoginWindow *login_window, guint dialog_mode) { - GtkWidget *label; -- guint mode; - g_debug ("GdmGreeterLoginWindow: Resetting dialog to mode %u", dialog_mode); set_busy (login_window); set_sensitive (login_window, FALSE); -@@ -813,9 +810,6 @@ reset_dialog (GdmGreeterLoginWindow *login_window, +@@ -812,9 +810,6 @@ reset_dialog (GdmGreeterLoginWindow *login_window, reset_task, login_window); @@ -17311,10 +17222,10 @@ index c33b871..05e06bc 100644 /* If we don't have a user list jump straight to authenticate */ g_debug ("GdmGreeterLoginWindow: jumping straight to authenticate"); -- -1.7.3.3 +1.7.3.5 -From 2ad1e9e4ea17d5428c87028c1a2b52560b06f57f Mon Sep 17 00:00:00 2001 +From 26e4410292beca92834144f538f8b425b1a66888 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Aug 2010 18:03:52 -0400 Subject: [PATCH 31/35] Add delay when showing messages (needs split) @@ -17335,7 +17246,7 @@ screen for a sufficient amount of time. 6 files changed, 187 insertions(+), 10 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 05e06bc..57e2251 100644 +index 7d63761..8db6a55 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -137,6 +137,9 @@ struct GdmGreeterLoginWindowPrivate @@ -17514,7 +17425,7 @@ index 05e06bc..57e2251 100644 } else { g_debug ("GdmGreeterLoginWindow: not starting session since " "user hasn't had an opportunity to pick language " -@@ -2174,6 +2240,35 @@ on_conversation_chose_user (GdmGreeterLoginWindow *login_window, +@@ -2215,6 +2281,35 @@ on_conversation_chose_user (GdmGreeterLoginWindow *login_window, return TRUE; } @@ -17550,7 +17461,7 @@ index 05e06bc..57e2251 100644 void gdm_greeter_login_window_remove_extension (GdmGreeterLoginWindow *login_window, GdmGreeterExtension *extension) -@@ -2336,6 +2431,10 @@ gdm_greeter_login_window_add_extension (GdmGreeterLoginWindow *login_window, +@@ -2377,6 +2472,10 @@ gdm_greeter_login_window_add_extension (GdmGreeterLoginWindow *login_window, "user-chosen", G_CALLBACK (on_conversation_chose_user), login_window); @@ -17776,10 +17687,10 @@ index b40a21c..5e234b9 100644 static void -- -1.7.3.3 +1.7.3.5 -From bdc3b20af9aaa433c90c7e094bba3099f8eb544d Mon Sep 17 00:00:00 2001 +From 2c745601fc2d70698c82222268b7cea3056ba294 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 4 Aug 2010 19:27:14 -0400 Subject: [PATCH 32/35] Drop cancelling message @@ -17790,7 +17701,7 @@ We cancel very quickly in most cases now, so the message isn't useful 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 57e2251..d9e14f0 100644 +index 8db6a55..513b024 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -849,7 +849,7 @@ static void @@ -17803,10 +17714,10 @@ index 57e2251..d9e14f0 100644 } -- -1.7.3.3 +1.7.3.5 -From b893801e9f3bed81fcc3c21ceb291251b9b88279 Mon Sep 17 00:00:00 2001 +From 04203d4383f8a6e263bd6893aa1540207b34a875 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 Aug 2010 11:14:23 -0400 Subject: [PATCH 33/35] manage tasks outside of task list @@ -17826,7 +17737,7 @@ when we don't need to. 1 files changed, 206 insertions(+), 190 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index d9e14f0..406107e 100644 +index 513b024..9219202 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -98,6 +98,7 @@ enum { @@ -18310,7 +18221,7 @@ index d9e14f0..406107e 100644 - g_object_unref (task); } - gdk_window_beep (GTK_WIDGET (login_window)->window); + gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (login_window))); @@ -1079,9 +1126,19 @@ gdm_greeter_login_window_service_unavailable (GdmGreeterLoginWindow *login_windo task = find_task_with_service_name (login_window, service_name); @@ -18560,7 +18471,7 @@ index d9e14f0..406107e 100644 switch_mode (login_window, MODE_SELECTION); gdm_profile_end (NULL); -@@ -2227,15 +2252,12 @@ on_conversation_chose_user (GdmGreeterLoginWindow *login_window, +@@ -2268,15 +2293,12 @@ on_conversation_chose_user (GdmGreeterLoginWindow *login_window, /* If we're already authenticating then we can't pick a user */ @@ -18579,7 +18490,7 @@ index d9e14f0..406107e 100644 return TRUE; } -@@ -2259,11 +2281,7 @@ on_conversation_message_set (GdmGreeterLoginWindow *login_window, +@@ -2300,11 +2322,7 @@ on_conversation_message_set (GdmGreeterLoginWindow *login_window, } if (login_window->priv->service_name_of_session_ready_to_start != NULL ) { @@ -18592,7 +18503,7 @@ index d9e14f0..406107e 100644 gdm_greeter_login_window_start_session (login_window); } } -@@ -2439,9 +2457,7 @@ gdm_greeter_login_window_add_extension (GdmGreeterLoginWindow *login_window, +@@ -2480,9 +2498,7 @@ gdm_greeter_login_window_add_extension (GdmGreeterLoginWindow *login_window, g_debug ("GdmGreeterLoginWindow: new extension '%s - %s' added", name, description); @@ -18604,10 +18515,10 @@ index d9e14f0..406107e 100644 if (gdm_task_is_choosable (GDM_TASK (extension))) { -- -1.7.3.3 +1.7.3.5 -From bed394c6f270f77d4b7d76030bf7dcb0c6759ef4 Mon Sep 17 00:00:00 2001 +From 6ca468c1f146b079a834d4dcf1b4047e078a1f37 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 9 Aug 2010 18:09:19 -0400 Subject: [PATCH 34/35] hide task actions more aggressively @@ -18618,7 +18529,7 @@ This fixes "dual login buttons" after the user hits cancel. 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c -index 406107e..c8d56c5 100644 +index 9219202..0aa392d 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -492,6 +492,8 @@ set_log_in_button_mode (GdmGreeterLoginWindow *login_window, @@ -18639,10 +18550,10 @@ index 406107e..c8d56c5 100644 return FALSE; } -- -1.7.3.3 +1.7.3.5 -From d9197164a4ed20c645753cc4275644eb1050cdae Mon Sep 17 00:00:00 2001 +From 4f0f372eaae52b5d0e6de09597c1efd7b420d35f Mon Sep 17 00:00:00 2001 From: Gal Hammer Date: Thu, 21 Oct 2010 10:14:32 -0400 Subject: [PATCH 35/35] smartcard: don't show extension if disabled in authconfig @@ -18667,5 +18578,5 @@ index 5e234b9..ef79c28 100644 static void -- -1.7.3.3 +1.7.3.5 diff --git a/gdm.spec b/gdm.spec index 970a256..d747be5 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,6 +1,6 @@ %define libauditver 1.0.6 %define pango_version 1.2.0 -%define gtk2_version 2.6.0 +%define gtk3_version 2.99.2 %define libglade2_version 2.0.0 %define libgnomeui_version 2.2.0 %define scrollkeeper_version 0.3.4 @@ -14,8 +14,8 @@ Summary: The GNOME Display Manager Name: gdm -Version: 2.91.4 -Release: 6%{?dist} +Version: 2.91.6 +Release: 1%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -55,7 +55,7 @@ Requires: libXau >= 1.0.4-4 BuildRequires: pkgconfig(libcanberra-gtk) BuildRequires: scrollkeeper >= 0:%{scrollkeeper_version} BuildRequires: pango-devel >= 0:%{pango_version} -BuildRequires: gtk2-devel >= 0:%{gtk2_version} +BuildRequires: gtk3-devel >= 0:%{gtk3_version} BuildRequires: libglade2-devel >= 0:%{libglade2_version} BuildRequires: libgnomeui-devel >= 0:%{libgnomeui_version} BuildRequires: pam-devel >= 0:%{pam_version} @@ -89,8 +89,6 @@ Provides: service(graphical-login) = %{name} Requires: audit-libs >= %{libauditver} Patch2: plymouth.patch -Patch3: icon-fix.patch -Patch4: icon-ref-issue.patch Patch96: gdm-multistack.patch # Fedora-specific @@ -98,13 +96,6 @@ Patch97: gdm-bubble-location.patch Patch98: tray-padding.patch Patch99: gdm-2.23.1-fedora-logo.patch -%package user-switch-applet -Summary: GDM User Switcher Panel Applet -Group: User Interface/Desktops -Requires: gdm >= 0:2.21.9-0 -Obsoletes: fast-user-switch-applet -Provides: fast-user-switch-applet = %{epoch}:%{version}-%{release} - %package plugin-smartcard Summary: GDM smartcard plugin Group: User Interface/Desktops @@ -121,10 +112,6 @@ Requires: fprintd-pam GDM provides the graphical login screen, shown shortly after boot up, log out, and when user-switching. -%description user-switch-applet -The GDM user switcher applet provides a mechanism for changing among -multiple simulanteous logged in users. - %description plugin-smartcard The GDM smartcard plugin provides functionality necessary to use a smart card with GDM. @@ -134,8 +121,6 @@ The GDM fingerprint plugin provides functionality necessary to use a fingerprint %prep %setup -q %patch2 -p1 -b .plymouth -%patch3 -p1 -b .icon-fix -%patch4 -p1 -b .icon-ref-issue %patch96 -p1 -b .multistack %patch97 -p1 -b .bubble-location %patch98 -p1 -b .tray-padding @@ -347,7 +332,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/ull || : %dir %{_datadir}/gdm %dir %{_datadir}/gdm/autostart %dir %{_datadir}/gdm/autostart/LoginWindow -%config %{_datadir}/gdm/autostart/LoginWindow/* +%{_datadir}/gdm/autostart/LoginWindow/* %dir %{_localstatedir}/log/gdm %dir %{_localstatedir}/spool/gdm %attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm @@ -361,13 +346,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/ull || : %{_sysconfdir}/dconf/profile/gdm %{_sysconfdir}/dconf/db/gdm - -%files user-switch-applet -%defattr(-, root, root) -%{_libexecdir}/gdm-user-switch-applet -%{_libdir}/bonobo/servers/GNOME_FastUserSwitchApplet.server -%{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml - %files plugin-smartcard %defattr(-, root, root) %config %{_sysconfdir}/pam.d/gdm-smartcard @@ -384,6 +362,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/ull || : %{_libdir}/gdm/simple-greeter/plugins/fingerprint.so %changelog +* Wed Feb 02 2011 Ray Strode 2.91.6-1 +- Update to 2.91.6 + * Sat Jan 29 2011 Ville Skyttä - 1:2.91.4-6 - Dir ownership fixes.