commit:     4410ebee118ca372a9db22dde9cfedcca6299bde
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat May 16 22:04:12 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat May 16 22:38:09 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4410ebee

kde-plasma/kwin: Place lockscreen greeter above other windows

KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=420802
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../kwin-5.18.5-wayland-lockscreen-greeter.patch   | 73 ++++++++++++++++++++++
 kde-plasma/kwin/kwin-5.18.5-r1.ebuild              |  1 +
 2 files changed, 74 insertions(+)

diff --git a/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch 
b/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch
new file mode 100644
index 00000000000..ac4b9d24c8e
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch
@@ -0,0 +1,73 @@
+From 6f8b8efb338117ee197092e46b25b489b612257d Mon Sep 17 00:00:00 2001
+From: Vlad Zahorodnii <[email protected]>
+Date: Fri, 8 May 2020 11:26:27 +0300
+Subject: [wayland] Place lockscreen greeter above other windows
+
+Summary: BUG: 420802
+
+Reviewers: #kwin, davidedmundson
+
+Reviewed By: #kwin, davidedmundson
+
+Subscribers: apol, kwin
+
+Tags: #kwin
+
+Differential Revision: https://phabricator.kde.org/D29523
+---
+ abstract_client.cpp                  |  2 ++
+ autotests/integration/lockscreen.cpp | 19 +++++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+diff --git a/abstract_client.cpp b/abstract_client.cpp
+index ca6c422..48918e7 100644
+--- a/abstract_client.cpp
++++ b/abstract_client.cpp
+@@ -275,6 +275,8 @@ Layer AbstractClient::belongsToLayer() const
+     // Since the desktop is also activated, nothing should be in the 
ActiveLayer, though
+     if (isInternal())
+         return UnmanagedLayer;
++    if (isLockScreen())
++        return UnmanagedLayer;
+     if (isDesktop())
+         return workspace()->showingDesktop() ? AboveLayer : DesktopLayer;
+     if (isSplash())          // no damn annoying splashscreens
+diff --git a/autotests/integration/lockscreen.cpp 
b/autotests/integration/lockscreen.cpp
+index e258540..82cac09 100644
+--- a/autotests/integration/lockscreen.cpp
++++ b/autotests/integration/lockscreen.cpp
+@@ -62,6 +62,7 @@ private Q_SLOTS:
+     void initTestCase();
+     void init();
+     void cleanup();
++    void testStackingOrder();
+     void testPointer();
+     void testPointerButton();
+     void testPointerAxis();
+@@ -223,6 +224,24 @@ void LockScreenTest::cleanup()
+     Test::destroyWaylandConnection();
+ }
+ 
++void LockScreenTest::testStackingOrder()
++{
++    // This test verifies that the lockscreen greeter is placed above other 
windows.
++
++    QSignalSpy clientAddedSpy(waylandServer(), 
&WaylandServer::shellClientAdded);
++    QVERIFY(clientAddedSpy.isValid());
++
++    LOCK
++    QVERIFY(clientAddedSpy.wait());
++
++    AbstractClient *client = 
clientAddedSpy.first().first().value<AbstractClient *>();
++    QVERIFY(client);
++    QVERIFY(client->isLockScreen());
++    QCOMPARE(client->layer(), UnmanagedLayer);
++
++    UNLOCK
++}
++
+ void LockScreenTest::testPointer()
+ {
+     using namespace KWayland::Client;
+-- 
+cgit v1.1

diff --git a/kde-plasma/kwin/kwin-5.18.5-r1.ebuild 
b/kde-plasma/kwin/kwin-5.18.5-r1.ebuild
index c755f96bbcf..0ba4084e461 100644
--- a/kde-plasma/kwin/kwin-5.18.5-r1.ebuild
+++ b/kde-plasma/kwin/kwin-5.18.5-r1.ebuild
@@ -96,6 +96,7 @@ RESTRICT+=" test"
 PATCHES=(
        # in Plasma/5.18
        "${FILESDIR}/${P}-dont-exec-QDialog.patch" # KDE-bug 421053
+       "${FILESDIR}/${P}-wayland-lockscreen-greeter.patch" # KDE-bug 420802
 )
 
 src_prepare() {

Reply via email to