kutils: do not use org.freedesktop.ScreenSaver in kidletime

the current org.freedesktop.ScreenSaver implementation actually uses
kidletime internally

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-08-05 21:18:56 +03:00
parent a31aa23230
commit 9b64878a8d
7 changed files with 16 additions and 93 deletions

View file

@ -28,10 +28,6 @@ if (HAVE_XSCREENSAVER)
set(kidletime_LIB_SRCS ${kidletime_LIB_SRCS}
kidletime/xscreensaverbasedpoller.cpp
)
qt4_add_dbus_interface(kidletime_LIB_SRCS
kidletime/org.freedesktop.ScreenSaver.xml
screensaver_interface
)
endif()
if(HAVE_XSYNC)

View file

@ -173,22 +173,16 @@ void KIdleTimePrivate::loadSystem()
}
// Priority order
#ifdef Q_WS_X11
#ifdef HAVE_XSYNC
#ifdef HAVE_XSCREENSAVER
if (XSyncBasedPoller::instance()->isAvailable()) {
poller = XSyncBasedPoller::instance();
} else {
}
#endif
#ifdef HAVE_XSCREENSAVER
if (poller.isNull()) {
poller = new XScreensaverBasedPoller();
}
#else
poller = XSyncBasedPoller::instance();
#endif
#else
#ifdef HAVE_XSCREENSAVER
poller = new XScreensaverBasedPoller();
#endif
#endif
#endif
@ -214,7 +208,6 @@ void KIdleTimePrivate::unloadCurrentSystem()
void KIdleTimePrivate::_k_resumingFromIdle()
{
Q_Q(KIdleTime);
if (catchResume) {
emit q->resumingFromIdle();
q->stopCatchingResumeEvent();
@ -236,21 +229,23 @@ void KIdleTimePrivate::_k_timeoutReached(int msec)
void KIdleTime::simulateUserActivity()
{
Q_D(KIdleTime);
if (!d->poller.isNull()) {
d->poller.data()->simulateUserActivity();
}
}
int KIdleTime::idleTime() const
{
Q_D(const KIdleTime);
if (!d->poller.isNull()) {
return d->poller.data()->forcePollRequest();
}
return 0;
}
QHash<int, int> KIdleTime::idleTimeouts() const
{
Q_D(const KIdleTime);
return d->associations;
}

View file

@ -1,33 +0,0 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.ScreenSaver">
<signal name="ActiveChanged">
<arg type="b"/>
</signal>
<method name="Lock">
</method>
<method name="SimulateUserActivity">
</method>
<method name="GetActive">
<arg type="b" direction="out"/>
</method>
<method name="GetActiveTime">
<arg name="seconds" type="u" direction="out"/>
</method>
<method name="GetSessionIdleTime">
<arg name="seconds" type="u" direction="out"/>
</method>
<method name="SetActive">
<arg type="b" direction="out"/>
<arg name="e" type="b" direction="in"/>
</method>
<method name="Inhibit">
<arg name="application_name" type="s" direction="in"/>
<arg name="reason_for_inhibit" type="s" direction="in"/>
<arg name="cookie" type="u" direction="out"/>
</method>
<method name="UnInhibit">
<arg name="cookie" type="u" direction="in"/>
</method>
</interface>
</node>

View file

@ -50,7 +50,7 @@ bool WidgetBasedPoller::setUpPoller()
m_grabber->installEventFilter(this);
m_grabber->setObjectName("KIdleGrabberWidget");
return additionalSetUp();
return true;
}
void WidgetBasedPoller::unloadPoller()
@ -89,7 +89,6 @@ bool WidgetBasedPoller::eventFilter(QObject *object, QEvent *event)
void WidgetBasedPoller::waitForActivity()
{
// This code was taken from Lithium/KDE4Powersave
m_grabber->show();
m_grabber->grabMouse();
m_grabber->grabKeyboard();

View file

@ -54,9 +54,6 @@ private slots:
void waitForActivity();
void releaseInputLock();
private:
virtual bool additionalSetUp() = 0;
private:
QTimer * m_pollTimer;
QWidget * m_grabber;

View file

@ -18,15 +18,13 @@
#include "xscreensaverbasedpoller.h"
#include "config.h"
#include <QtGui/qx11info_x11.h>
#include <X11/Xlib.h>
#include <X11/extensions/scrnsaver.h>
XScreensaverBasedPoller::XScreensaverBasedPoller(QWidget *parent)
: WidgetBasedPoller(parent), m_screenSaverIface( 0 )
: WidgetBasedPoller(parent)
{
}
@ -35,26 +33,6 @@ XScreensaverBasedPoller::~XScreensaverBasedPoller()
{
}
bool XScreensaverBasedPoller::additionalSetUp()
{
m_screenSaverIface = new OrgFreedesktopScreenSaverInterface("org.freedesktop.ScreenSaver", "/ScreenSaver",
QDBusConnection::sessionBus(), this);
connect(m_screenSaverIface, SIGNAL(ActiveChanged(bool)), SLOT(screensaverActivated(bool)));
return true;
}
void XScreensaverBasedPoller::screensaverActivated(bool activated)
{
// We care only if it has been disactivated
if (!activated) {
m_screenSaverIface->SimulateUserActivity();
emit resumingFromIdle();
}
}
int XScreensaverBasedPoller::getIdleTime()
{
XScreenSaverInfo * mitInfo = 0;

View file

@ -21,8 +21,6 @@
#include "widgetbasedpoller.h"
#include "screensaver_interface.h"
class XScreensaverBasedPoller: public WidgetBasedPoller
{
Q_OBJECT
@ -34,15 +32,8 @@ public:
public slots:
void simulateUserActivity();
private:
bool additionalSetUp();
private slots:
void screensaverActivated(bool activated);
int getIdleTime();
private:
OrgFreedesktopScreenSaverInterface * m_screenSaverIface;
};
#endif /* XSCREENSAVERBASEDPOLLER_H_ */