This is an automated email from the git hooks/post-receive script.

bluesabre pushed a 
commit to branch 
master
in repository apps/xfce4-screensaver.

commit 69c32a115c1b66a53e726910beb60c298c175ceb
Author: Michael Weiser <michael.wei...@gmx.de>
Date:   Thu Jan 9 14:19:40 2020 +0100

    Fix dbus inhibition (bug #16365)
    
    Port over necessary routines from mate screensaver and wire them into
    idle screensaving and locking decisions. Do not inhibit explicit
    locking e.g. via dbus because it's security relevant and we should
    do it if requested explicitly.
    
    Signed-off-by: Sean Davis <smd.seanda...@gmail.com>
---
 src/gs-listener-dbus.c | 12 ++++++++++++
 src/gs-listener-dbus.h |  7 +------
 src/gs-monitor.c       | 10 ++++++++++
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
index 0c15379..1a8f88b 100644
--- a/src/gs-listener-dbus.c
+++ b/src/gs-listener-dbus.c
@@ -391,6 +391,18 @@ gs_listener_activate_saver (GSListener *listener,
     return TRUE;
 }
 
+gboolean
+gs_listener_is_inhibited (GSListener *listener)
+{
+    gboolean inhibited;
+
+    g_return_val_if_fail (GS_IS_LISTENER (listener), FALSE);
+
+    inhibited = listener_ref_entry_is_present (listener, 
REF_ENTRY_TYPE_INHIBIT);
+
+    return inhibited;
+}
+
 static dbus_bool_t
 listener_property_set_bool (GSListener  *listener,
                             guint        prop_id,
diff --git a/src/gs-listener-dbus.h b/src/gs-listener-dbus.h
index 048a404..41266f7 100644
--- a/src/gs-listener-dbus.h
+++ b/src/gs-listener-dbus.h
@@ -78,12 +78,7 @@ gboolean    gs_listener_acquire                         
(GSListener *listener,
                                                          GError    **error);
 gboolean    gs_listener_activate_saver                  (GSListener *listener,
                                                          gboolean    active);
-gboolean    gs_listener_set_session_idle                (GSListener *listener,
-                                                         gboolean    idle);
-void        gs_listener_set_activation_enabled          (GSListener *listener,
-                                                         gboolean    enabled);
-void        gs_listener_set_sleep_activation_enabled    (GSListener *listener,
-                                                         gboolean    enabled);
+gboolean    gs_listener_is_inhibited                    (GSListener *listener);
 
 G_END_DECLS
 
diff --git a/src/gs-monitor.c b/src/gs-monitor.c
index ffdaa4a..d3b9e4b 100644
--- a/src/gs-monitor.c
+++ b/src/gs-monitor.c
@@ -87,10 +87,20 @@ static void listener_lock_cb(GSListener* listener, 
GSMonitor* monitor) {
 }
 
 static void listener_x11_activate_cb(GSListenerX11* listener, GSMonitor* 
monitor) {
+    if (gs_listener_is_inhibited(monitor->priv->listener)) {
+        gs_debug("Idle screen saving inhibited via dbus");
+        return;
+    }
+
     gs_listener_activate_saver(monitor->priv->listener, TRUE);
 }
 
 static void listener_x11_lock_cb(GSListenerX11* listener, GSMonitor* monitor) {
+    if (gs_listener_is_inhibited(monitor->priv->listener)) {
+        gs_debug("Idle locking inhibited via dbus");
+        return;
+    }
+
     listener_lock_cb (NULL, monitor);
 }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to