mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kscreensaver: kill xscreensaver daemon process from KScreenSaver destructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
80c8635f23
commit
126fe06177
2 changed files with 11 additions and 1 deletions
|
@ -19,17 +19,20 @@
|
|||
#include "kscreensaver.h"
|
||||
#include "screensaveradaptor.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <kdebug.h>
|
||||
#include <kidletime.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
KScreenSaver::KScreenSaver(QObject *parent)
|
||||
: QObject(parent),
|
||||
m_objectsregistered(false),
|
||||
m_serviceregistered(false),
|
||||
m_xscreensaver(nullptr),
|
||||
m_xscreensaverpid(0),
|
||||
m_login1("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()),
|
||||
m_consolekit("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())
|
||||
{
|
||||
|
@ -63,7 +66,9 @@ KScreenSaver::KScreenSaver(QObject *parent)
|
|||
|
||||
QProcess::startDetached(
|
||||
QString::fromLatin1("xscreensaver"),
|
||||
QStringList() << QString::fromLatin1("-nosplash")
|
||||
QStringList() << QString::fromLatin1("-nosplash"),
|
||||
QDir::currentPath(),
|
||||
&m_xscreensaverpid
|
||||
);
|
||||
|
||||
m_xscreensaver = new QProcess(this);
|
||||
|
@ -124,6 +129,10 @@ KScreenSaver::~KScreenSaver()
|
|||
connection.unregisterObject("/org/freedesktop/ScreenSaver");
|
||||
}
|
||||
|
||||
if (m_xscreensaverpid > 0) {
|
||||
::kill(pid_t(m_xscreensaverpid), SIGTERM);
|
||||
}
|
||||
|
||||
if (m_xscreensaver) {
|
||||
disconnect(m_xscreensaver, SIGNAL(readyReadStandardOutput()), this, SLOT(slotXScreenSaverOutput()));
|
||||
disconnect(m_xscreensaver, SIGNAL(readyReadStandardError()), this, SLOT(slotXScreenSaverError()));
|
||||
|
|
|
@ -58,6 +58,7 @@ private:
|
|||
bool m_objectsregistered;
|
||||
bool m_serviceregistered;
|
||||
QProcess* m_xscreensaver;
|
||||
Q_PID m_xscreensaverpid;
|
||||
QElapsedTimer m_activetimer;
|
||||
QList<uint> m_inhibitions;
|
||||
QDBusInterface m_login1;
|
||||
|
|
Loading…
Add table
Reference in a new issue