From 94cd451d64dec28a5649038b3de1c5971f8f6137 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 16 Mar 2010 19:58:54 -0500 Subject: Adding a way to activate the guest session through GDM --- src/session-service.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/session-service.c') diff --git a/src/session-service.c b/src/session-service.c index fb20f3b..cb36e9c 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -386,6 +386,13 @@ activate_guest_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_da lock_if_possible(); + if (dbusmenu_menuitem_property_get_bool(mi, USER_ITEM_PROP_LOGGED_IN)) { + if (users_service_dbus_activate_guest_session(USERS_SERVICE_DBUS(user_data))) { + return; + } + g_warning("Unable to activate guest session, falling back to command line activation."); + } + if (!g_spawn_command_line_async(GUEST_SESSION_LAUNCHER, &error)) { g_warning("Unable to start guest session: %s", error->message); g_error_free(error); -- cgit v1.2.3 From 6b1354f942d4482e85c1f15b3d3649cb7c20ea63 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 16 Mar 2010 21:47:45 -0500 Subject: Setting the menuitem for the user. --- src/session-service.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/session-service.c') diff --git a/src/session-service.c b/src/session-service.c index cb36e9c..bc88473 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -599,6 +599,7 @@ rebuild_items (DbusmenuMenuitem *root, dbusmenu_menuitem_property_set_bool (mi, USER_ITEM_PROP_LOGGED_IN, user->sessions != NULL); dbusmenu_menuitem_child_append (root, mi); g_signal_connect (G_OBJECT (mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_user_session), user); + user->menuitem = mi; } } -- cgit v1.2.3 From 2e0cbb1a5a969eb5b983e9b899a3638d5b8136d1 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 16 Mar 2010 21:58:59 -0500 Subject: Setting the guest item once it gets built. --- src/session-service.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/session-service.c') diff --git a/src/session-service.c b/src/session-service.c index bc88473..379a0a2 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -526,6 +526,9 @@ rebuild_items (DbusmenuMenuitem *root, } } + /* Set to NULL just incase we don't end up building one */ + users_service_dbus_set_guest_item(service, NULL); + /* Build all of the user switching items */ if (can_activate == TRUE) { @@ -543,6 +546,7 @@ rebuild_items (DbusmenuMenuitem *root, dbusmenu_menuitem_property_set_bool (guest_mi, USER_ITEM_PROP_LOGGED_IN, FALSE); dbusmenu_menuitem_child_append (root, guest_mi); g_signal_connect (G_OBJECT (guest_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_guest_session), NULL); + users_service_dbus_set_guest_item(service, guest_mi); } if (check_new_session ()) -- cgit v1.2.3