feat(slock): implement ext_session_lock_v1 backend

note: did not run lints or fully test yet
This commit is contained in:
outfoxxed 2024-02-28 04:37:52 -08:00
parent 70c5cf1e16
commit 1fa87b7c5a
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
12 changed files with 525 additions and 1 deletions

View file

@ -0,0 +1,27 @@
#pragma once
#include <qtclasshelpermacros.h>
#include <qwayland-ext-session-lock-v1.h>
#include <qwaylandclientextension.h>
#include "lock.hpp"
class QSWaylandSessionLockManager
: public QWaylandClientExtensionTemplate<QSWaylandSessionLockManager>
, public QtWayland::ext_session_lock_manager_v1 {
public:
QSWaylandSessionLockManager();
~QSWaylandSessionLockManager() override;
Q_DISABLE_COPY_MOVE(QSWaylandSessionLockManager);
// Create a new session lock if there is no currently active lock, otherwise null.
QSWaylandSessionLock* acquireLock();
[[nodiscard]] bool isLocked() const;
static bool sessionLocked();
private:
QSWaylandSessionLock* active = nullptr;
friend class QSWaylandSessionLock;
};