aboutsummaryrefslogtreecommitdiff
path: root/src/backend-dbus
diff options
context:
space:
mode:
authorCharles Kerr <charles.kerr@canonical.com>2013-08-20 08:42:24 -0500
committerCharles Kerr <charles.kerr@canonical.com>2013-08-20 08:42:24 -0500
commit4759a380da77dd1f8746f298a5ae051319a70ddd (patch)
tree95aae757abbdbc998f088b027e7c9c17391efdee /src/backend-dbus
parentb1a261f5a2c6c21190591f7d98d6604f5988369b (diff)
downloadayatana-indicator-session-4759a380da77dd1f8746f298a5ae051319a70ddd.tar.gz
ayatana-indicator-session-4759a380da77dd1f8746f298a5ae051319a70ddd.tar.bz2
ayatana-indicator-session-4759a380da77dd1f8746f298a5ae051319a70ddd.zip
when switching to the guest session, explicitly lock the current users's session
Diffstat (limited to 'src/backend-dbus')
-rw-r--r--src/backend-dbus/actions.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend-dbus/actions.c b/src/backend-dbus/actions.c
index 9030ca7..17547f0 100644
--- a/src/backend-dbus/actions.c
+++ b/src/backend-dbus/actions.c
@@ -734,7 +734,7 @@ my_about (IndicatorSessionActions * self G_GNUC_UNUSED)
***/
static void
-my_switch_to_screensaver (IndicatorSessionActions * self)
+lock_current_session (IndicatorSessionActions * self)
{
priv_t * p = INDICATOR_SESSION_ACTIONS_DBUS(self)->priv;
@@ -744,12 +744,19 @@ my_switch_to_screensaver (IndicatorSessionActions * self)
}
static void
+my_switch_to_screensaver (IndicatorSessionActions * self)
+{
+ lock_current_session (self);
+}
+
+static void
my_switch_to_greeter (IndicatorSessionActions * self)
{
priv_t * p = INDICATOR_SESSION_ACTIONS_DBUS(self)->priv;
g_return_if_fail (p->dm_seat != NULL);
+ /* show the greeter */
display_manager_seat_call_switch_to_greeter (p->dm_seat,
p->dm_seat_cancellable,
NULL, NULL);
@@ -762,6 +769,8 @@ my_switch_to_guest (IndicatorSessionActions * self)
g_return_if_fail (p->dm_seat != NULL);
+ lock_current_session (self);
+
display_manager_seat_call_switch_to_guest (p->dm_seat, "",
p->dm_seat_cancellable,
NULL, NULL);