quickshell/src/wayland/session_lock/shell_integration.cpp
outfoxxed 1fa87b7c5a
feat(slock): implement ext_session_lock_v1 backend
note: did not run lints or fully test yet
2024-02-28 04:37:52 -08:00

20 lines
667 B
C++

#include "shell_integration.hpp"
#include <private/qwaylandshellsurface_p.h>
#include <private/qwaylandwindow_p.h>
#include <qlogging.h>
#include "session_lock.hpp"
#include "surface.hpp"
QtWaylandClient::QWaylandShellSurface*
QSWaylandSessionLockIntegration::createShellSurface(QtWaylandClient::QWaylandWindow* window) {
auto* lock = LockWindowExtension::get(window->window());
if (lock == nullptr || lock->surface == nullptr || !lock->surface->isExposed()) {
qFatal() << "Visibility canary failed. A window with a LockWindowExtension MUST be set to "
"visible via LockWindowExtension::setVisible";
throw nullptr;
}
return lock->surface;
}