diff options
Diffstat (limited to 'debian/patches/restore_session_lock.patch')
-rw-r--r-- | debian/patches/restore_session_lock.patch | 57 |
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; ++ } + } + + + |