diff --git a/abstractlocker.h b/abstractlocker.h --- a/abstractlocker.h +++ b/abstractlocker.h @@ -57,7 +57,7 @@ { Q_OBJECT public: - AbstractLocker(); + AbstractLocker(QObject *parent); virtual ~AbstractLocker(); virtual void showLockWindow() = 0; diff --git a/abstractlocker.cpp b/abstractlocker.cpp --- a/abstractlocker.cpp +++ b/abstractlocker.cpp @@ -79,8 +79,9 @@ show(); } -AbstractLocker::AbstractLocker() : - m_background(new BackgroundWindow(this)) +AbstractLocker::AbstractLocker(QObject *parent) + : QObject(parent) + , m_background(new BackgroundWindow(this)) { } diff --git a/ksldapp.cpp b/ksldapp.cpp --- a/ksldapp.cpp +++ b/ksldapp.cpp @@ -600,10 +600,10 @@ { if (!m_lockWindow) { if (m_isX11) { - m_lockWindow = new X11Locker(); + m_lockWindow = new X11Locker(this); } if (m_isWayland) { - m_lockWindow = new WaylandLocker(m_waylandDisplay); + m_lockWindow = new WaylandLocker(m_waylandDisplay, this); } if (!m_lockWindow) { return; diff --git a/waylandlocker.h b/waylandlocker.h --- a/waylandlocker.h +++ b/waylandlocker.h @@ -39,8 +39,8 @@ Q_OBJECT public: - WaylandLocker(KWayland::Server::Display *display); - ~WaylandLocker(); + WaylandLocker(KWayland::Server::Display *display, QObject *parent); + virtual ~WaylandLocker(); void showLockWindow() override; void hideLockWindow() override; diff --git a/waylandlocker.cpp b/waylandlocker.cpp --- a/waylandlocker.cpp +++ b/waylandlocker.cpp @@ -25,8 +25,8 @@ namespace ScreenLocker { -WaylandLocker::WaylandLocker(KWayland::Server::Display *display) - : AbstractLocker() +WaylandLocker::WaylandLocker(KWayland::Server::Display *display, QObject *parent) + : AbstractLocker(parent) { const auto seats = display->seats(); for (auto s : seats) { diff --git a/x11locker.h b/x11locker.h --- a/x11locker.h +++ b/x11locker.h @@ -41,7 +41,7 @@ { Q_OBJECT public: - X11Locker(); + X11Locker(QObject *parent = nullptr); virtual ~X11Locker(); void showLockWindow() override; diff --git a/x11locker.cpp b/x11locker.cpp --- a/x11locker.cpp +++ b/x11locker.cpp @@ -48,8 +48,8 @@ namespace ScreenLocker { -X11Locker::X11Locker() - : AbstractLocker() +X11Locker::X11Locker(QObject *parent) + : AbstractLocker(parent) , QAbstractNativeEventFilter() { initialize();