fix(core): use standard screen saver lock API

main
Reion Wong 3 weeks ago
parent a096e305a1
commit 5ce731d54f

@ -19,10 +19,11 @@
***************************************************************************/
#include "dimdisplayaction.h"
#include "screenlocker_interface.h"
#include <QSettings>
#include <QTimer>
#include <QDBusPendingCall>
#include <QProcess>
#include <QDebug>
DimDisplayAction::DimDisplayAction(QObject *parent)
@ -73,7 +74,11 @@ void DimDisplayAction::onIdleTimeout(int msec)
}
if (m_lock) {
QProcess::startDetached("cutefish-screenlocker", QStringList());
OrgFreedesktopScreenSaverInterface screenSaver(
QStringLiteral("org.freedesktop.ScreenSaver"),
QStringLiteral("/ScreenSaver"),
QDBusConnection::sessionBus());
screenSaver.Lock();
}
} else if (sec == (m_dimOnIdleTime * 3 / 4)) {

@ -21,12 +21,15 @@
#include <QCommandLineParser>
#include <QDBusInterface>
#include <QApplication>
#include <QProcess>
const static QString s_dbusName = "com.cutefish.Session";
const static QString s_pathName = "/Session";
const static QString s_interfaceName = "com.cutefish.Session";
const static QString s_screenSaverService = "org.freedesktop.ScreenSaver";
const static QString s_screenSaverPath = "/ScreenSaver";
const static QString s_screenSaverInterface = "org.freedesktop.ScreenSaver";
Actions::Actions(QObject *parent)
: QObject(parent)
{
@ -59,7 +62,13 @@ void Actions::reboot()
void Actions::lockScreen()
{
QProcess::startDetached("cutefish-screenlocker", QStringList());
QDBusInterface iface(s_screenSaverService,
s_screenSaverPath,
s_screenSaverInterface,
QDBusConnection::sessionBus());
if (iface.isValid()) {
iface.call(QStringLiteral("Lock"));
}
qApp->exit(0);
}

Loading…
Cancel
Save