diff --git a/src/core/ScreenLockListenerDBus.cpp b/src/core/ScreenLockListenerDBus.cpp index 1976b47ea..6c1b7fe96 100644 --- a/src/core/ScreenLockListenerDBus.cpp +++ b/src/core/ScreenLockListenerDBus.cpp @@ -20,6 +20,7 @@ #include #include #include +#include ScreenLockListenerDBus::ScreenLockListenerDBus(QWidget *parent): ScreenLockListenerPrivate(parent) @@ -34,7 +35,7 @@ ScreenLockListenerDBus::ScreenLockListenerDBus(QWidget *parent): "ActiveChanged", // signal name this, //receiver SLOT(freedesktopScreenSaver(bool))); - + sessionBus.connect( "org.gnome.SessionManager", // service "/org/gnome/SessionManager/Presence", // path @@ -51,6 +52,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 +94,4 @@ void ScreenLockListenerDBus::freedesktopScreenSaver(bool status) if (status) { emit screenLocked(); } -} \ No newline at end of file +}