1
0
forked from pool/xfce4-session
xfce4-session/xfce4-session-lock-screen-on-suspend-hibernate.patch
Guido Berhoerster bdc0da57b2 - 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

OBS-URL: https://build.opensuse.org/package/show/X11:xfce/xfce4-session?expand=0&rev=79
2011-12-15 16:22:20 +00:00

57 lines
1.4 KiB
Diff

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
@@ -71,6 +71,8 @@
#include <libxfce4util/libxfce4util.h>
+#include <xfconf/xfconf.h>
+
#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);
+ lock_screen ();
+
#ifdef ENABLE_UPOWER
if ( helper->sleep_backend == XFSM_SLEEP_BACKEND_UPOWER )
{
@@ -1812,6 +1834,8 @@ gboolean xfsm_shutdown_helper_hibernate
{
g_return_val_if_fail (!error || !*error, FALSE);
+ lock_screen ();
+
#ifdef ENABLE_UPOWER
if ( helper->sleep_backend == XFSM_SLEEP_BACKEND_UPOWER )
{