aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/restore_session_lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/restore_session_lock.patch')
-rw-r--r--debian/patches/restore_session_lock.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/debian/patches/restore_session_lock.patch b/debian/patches/restore_session_lock.patch
new file mode 100644
index 0000000..ef4effb
--- /dev/null
+++ b/debian/patches/restore_session_lock.patch
@@ -0,0 +1,57 @@
+=== modified file 'src/user-menu-mgr.c'
+--- src/user-menu-mgr.c 2012-02-10 07:33:14 +0000
++++ src/user-menu-mgr.c 2012-02-23 18:19:12 +0000
+@@ -285,11 +285,29 @@
+ return TRUE;
+ }
+
++/* Check to see if the lockdown key is protecting from
++ locking the screen. If not, lock it. */
++static void
++lock_if_possible (void) {
++ ensure_settings_client ();
++
++ if (!g_settings_get_boolean (settings, LOCKDOWN_KEY_SCREENSAVER)) {
++ lock_screen(NULL, 0, NULL);
++ }
++
++ return;
++}
++
++
+ /* Starts a new generic session */
+ static void
+ activate_new_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_data)
+ {
+- users_service_dbus_show_greeter (USERS_SERVICE_DBUS(user_data));
++ lock_if_possible();
++
++ users_service_dbus_show_greeter (USERS_SERVICE_DBUS(user_data));
++
++ return;
+ }
+
+ /* Activates a session for a particular user. */
+@@ -299,6 +317,8 @@
+ UserData *user = (UserData *)user_data;
+ UsersServiceDbus *service = user->service;
+
++ lock_if_possible();
++
+ users_service_dbus_activate_user_session (service, user);
+ }
+
+@@ -386,7 +406,11 @@
+ UserMenuMgr* user_mgr = USER_MENU_MGR(user_data);
+ UsersServiceDbus *service = user_mgr->users_dbus_interface;
+
+- users_service_dbus_activate_guest_session(service);
++ lock_if_possible();
++
++ if (users_service_dbus_activate_guest_session(service)) {
++ return;
++ }
+ }
+
+
+