diff --git a/xfce4-session-lock-screen-on-suspend-hibernate.patch b/xfce4-session-lock-screen-on-suspend-hibernate.patch index 60b9409..73ad5f8 100644 --- a/xfce4-session-lock-screen-on-suspend-hibernate.patch +++ b/xfce4-session-lock-screen-on-suspend-hibernate.patch @@ -2,30 +2,54 @@ Index: xfce4-session-4.8.2/xfce4-session/xfsm-shutdown-helper.c =================================================================== --- xfce4-session-4.8.2.orig/xfce4-session/xfsm-shutdown-helper.c +++ xfce4-session-4.8.2/xfce4-session/xfsm-shutdown-helper.c -@@ -1783,8 +1783,13 @@ gboolean xfsm_shutdown_helper_restart (X - **/ - gboolean xfsm_shutdown_helper_suspend (XfsmShutdownHelper *helper, GError **error) - { +@@ -71,6 +71,8 @@ + + #include + ++#include ++ + #include "xfsm-shutdown-helper.h" + #include "xfsm-global.h" + +@@ -1722,6 +1724,24 @@ gboolean xfsm_shutdown_helper_send_passw + return TRUE; + } + ++static void ++lock_screen (void) ++{ ++ XfconfChannel *channel; + gboolean ret; ++ gint exit_status; ++ ++ channel = xfconf_channel_get ("xfce4-power-manager"); ++ if (xfconf_channel_get_bool (channel, "/xfce4-power-manager/lock-screen-suspend-hibernate", TRUE)) ++ { ++ ret = g_spawn_command_line_sync ("xflock4", NULL, NULL, &exit_status, NULL); ++ if (!ret || exit_status != 0) ++ { ++ g_warning ("Could not lock screen"); ++ } ++ } ++} ++ + /** + * xfsm_shutdown_helper_shutdown: + * +@@ -1785,6 +1805,8 @@ gboolean xfsm_shutdown_helper_suspend (X + { g_return_val_if_fail (!error || !*error, FALSE); -+ ret = g_spawn_command_line_async ("xflock4", NULL); -+ if (!ret) -+ g_warning("Could not lock screen"); ++ lock_screen (); + #ifdef ENABLE_UPOWER if ( helper->sleep_backend == XFSM_SLEEP_BACKEND_UPOWER ) { -@@ -1810,8 +1815,13 @@ gboolean xfsm_shutdown_helper_suspend (X - **/ - gboolean xfsm_shutdown_helper_hibernate (XfsmShutdownHelper *helper, GError **error) +@@ -1812,6 +1834,8 @@ gboolean xfsm_shutdown_helper_hibernate { -+ gboolean ret; g_return_val_if_fail (!error || !*error, FALSE); -+ ret = g_spawn_command_line_async ("xflock4", NULL); -+ if (!ret) -+ g_warning("Could not lock screen"); ++ lock_screen (); + #ifdef ENABLE_UPOWER if ( helper->sleep_backend == XFSM_SLEEP_BACKEND_UPOWER ) diff --git a/xfce4-session.changes b/xfce4-session.changes index e0a1a69..6a193c1 100644 --- a/xfce4-session.changes +++ b/xfce4-session.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Dec 15 15:58:02 UTC 2011 - gber@opensuse.org + +- improve xfce4-session-lock-screen-on-suspend-hibernate.patch and + only lock the screen if xfce4-power-manager is configured to do + so and execute xflock4 synchronously + ------------------------------------------------------------------- Wed Dec 14 13:18:26 UTC 2011 - gber@opensuse.org diff --git a/xfce4-session.spec b/xfce4-session.spec index ad3adaf..56945e4 100644 --- a/xfce4-session.spec +++ b/xfce4-session.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: xfce4-session Version: 4.8.2 Release: 0