54int main(
int argc,
char *argv[])
57 QApplication app(argc, argv);
58 QWidget window1(
nullptr, Qt::Window);
59 window1.setWindowTitle(
"Window 1");
60 window1.setLayout(
new QVBoxLayout);
61 QPushButton p(
"Lock && Raise the Window 2");
62 window1.layout()->addWidget(&p);
65 QWidget window2(
nullptr, Qt::Window);
66 window2.setWindowTitle(
"Window 2");
67 window2.setLayout(
new QVBoxLayout);
68 QPushButton p2(
"Close");
69 window2.layout()->addWidget(&p2);
72 auto raiseWindow2 = [&] {
73 KWindowSystem::requestXdgActivationToken(window2.windowHandle(), 0,
"lockscreenoverlaytest.desktop");
75 QObject::connect(KWindowSystem::self(), &KWindowSystem::xdgActivationTokenArrived, &window2, [&window2](
int,
const QString &token) {
76 KWindowSystem::setCurrentXdgActivationToken(token);
77 KWindowSystem::activateWindow(window2.windowHandle());
80 QObject::connect(&p, &QPushButton::clicked, &app, [&] {
81 QProcess::execute(
"loginctl", {
"lock-session"});
82 window2.showFullScreen();
83 QTimer::singleShot(3000, &app, raiseWindow2);
86 QObject::connect(&p2, &QPushButton::clicked, &window2, &QWidget::close);