From fae65f1cdd6446042b31ccd0eafd7a4c0b6623e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Fri, 5 Feb 2016 10:30:19 +0100 Subject: [PATCH 1/1] [greeter] Dont quit when last window closes Qt allows to have no screens. If all XRandR screens are disconnected there are also no QScreens. This is from an X11 perspective wrong, but we have to deal with it. No QScreens means that all views are destroyed and no new ones are created. Thus all windows close and the greeter exited successfully which in turn unlocked the screen. This change ensures that the greeter doesn't exit when all windows close. Funnily this was not a problem with the well known issue of Qt crashing when all screens are disconnected. The lock screen handles crashes gracefully and just restarts or more likely Qt also crashes the application using KSld and thus taking down the complete session. BUG: 358125 FIXED-IN: 5.5.5 --- greeter/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/greeter/main.cpp b/greeter/main.cpp index e4e679e..5625d36 100644 --- a/greeter/main.cpp +++ b/greeter/main.cpp @@ -59,6 +59,7 @@ int main(int argc, char* argv[]) qputenv("QT_IM_MODULE", QByteArrayLiteral("compose")); } ScreenLocker::UnlockApp app(argc, argv); + app.setQuitOnLastWindowClosed(false); QCoreApplication::setApplicationName(QStringLiteral("kscreenlocker_greet")); QCoreApplication::setApplicationVersion(QStringLiteral("0.1")); QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org")); -- 2.6.2