From 0ac590a06272ca587d1ae19a06c824f7f14ff56df079e0ede6b1de3d6b42ae99 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Tue, 9 Feb 2016 15:59:16 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kscreenlocker?expand=0&rev=15 --- ...er-Dont-quit-when-last-window-closes.patch | 39 +++++++++++++++++++ kscreenlocker.changes | 6 +++ kscreenlocker.spec | 3 ++ 3 files changed, 48 insertions(+) create mode 100644 0001-greeter-Dont-quit-when-last-window-closes.patch diff --git a/0001-greeter-Dont-quit-when-last-window-closes.patch b/0001-greeter-Dont-quit-when-last-window-closes.patch new file mode 100644 index 0000000..317df99 --- /dev/null +++ b/0001-greeter-Dont-quit-when-last-window-closes.patch @@ -0,0 +1,39 @@ +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 + diff --git a/kscreenlocker.changes b/kscreenlocker.changes index 3717b46..f108671 100644 --- a/kscreenlocker.changes +++ b/kscreenlocker.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Feb 9 15:58:56 UTC 2016 - hrvoje.senjan@gmail.com + +- Added 0001-greeter-Dont-quit-when-last-window-closes.patch + (kde#358125) + ------------------------------------------------------------------- Tue Jan 26 22:20:10 UTC 2016 - hrvoje.senjan@gmail.com diff --git a/kscreenlocker.spec b/kscreenlocker.spec index 5df4283..d53f751 100644 --- a/kscreenlocker.spec +++ b/kscreenlocker.spec @@ -27,6 +27,8 @@ Url: https://projects.kde.org/kscreenlocker Source: %{name}-%{version}.tar.xz # PATCH-FIX-OPENSUSE fix-wayland-version-requirement.diff -- Changes wayland requirement from 1.3 to 1.2.1 Patch0: fix-wayland-version-requirement.diff +# PATCH-FIX-UPSTREAM 0001-greeter-Dont-quit-when-last-window-closes.patch +Patch1: 0001-greeter-Dont-quit-when-last-window-closes.patch BuildRequires: cmake >= 2.8.12 BuildRequires: extra-cmake-modules >= 1.8.0 BuildRequires: kf5-filesystem @@ -88,6 +90,7 @@ Development files for Library and components for secure lock screen architecture # SLE12 has a patched 1.2.1 wayland with all features KDE needs from up to 1.7.0 %patch0 -p1 %endif +%patch1 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5