Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ScreenLockListenerDBus.cpp')
-rw-r--r--src/core/ScreenLockListenerDBus.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/core/ScreenLockListenerDBus.cpp b/src/core/ScreenLockListenerDBus.cpp
index 1976b47ea..03eed58ad 100644
--- a/src/core/ScreenLockListenerDBus.cpp
+++ b/src/core/ScreenLockListenerDBus.cpp
@@ -20,6 +20,7 @@
#include <QDBusConnection>
#include <QDBusInterface>
#include <QDBusReply>
+#include <QProcessEnvironment>
ScreenLockListenerDBus::ScreenLockListenerDBus(QWidget *parent):
ScreenLockListenerPrivate(parent)
@@ -34,7 +35,15 @@ ScreenLockListenerDBus::ScreenLockListenerDBus(QWidget *parent):
"ActiveChanged", // signal name
this, //receiver
SLOT(freedesktopScreenSaver(bool)));
-
+
+ sessionBus.connect(
+ "org.gnome.ScreenSaver", // service
+ "/org/gnome/ScreenSaver", // path
+ "org.gnome.ScreenSaver", // interface
+ "ActiveChanged", // signal name
+ this, //receiver
+ SLOT(freedesktopScreenSaver(bool)));
+
sessionBus.connect(
"org.gnome.SessionManager", // service
"/org/gnome/SessionManager/Presence", // path
@@ -51,6 +60,15 @@ ScreenLockListenerDBus::ScreenLockListenerDBus(QWidget *parent):
this, //receiver
SLOT(logindPrepareForSleep(bool)));
+ QString sessionId = QProcessEnvironment::systemEnvironment().value("XDG_SESSION_ID");
+ systemBus.connect(
+ "", // service
+ QString("/org/freedesktop/login1/session/") + sessionId, // path
+ "org.freedesktop.login1.Session", // interface
+ "Lock", // signal name
+ this, //receiver
+ SLOT(unityLocked()));
+
sessionBus.connect(
"com.canonical.Unity", // service
"/com/canonical/Unity/Session", // path
@@ -84,4 +102,4 @@ void ScreenLockListenerDBus::freedesktopScreenSaver(bool status)
if (status) {
emit screenLocked();
}
-} \ No newline at end of file
+}