[Xfce4-commits] [apps/xfce4-screensaver] 02/02: Fix dbus inhibition (bug #16365)
noreply at xfce.org
noreply at xfce.org
Wed Jan 15 11:12:22 CET 2020
This is an automated email from the git hooks/post-receive script.
b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository apps/xfce4-screensaver.
commit 69c32a115c1b66a53e726910beb60c298c175ceb
Author: Michael Weiser <michael.weiser at 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.seandavis at 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.
More information about the Xfce4-commits
mailing list