diff options
Diffstat (limited to 'kde-plasma/kwin')
-rw-r--r-- | kde-plasma/kwin/Manifest | 6 | ||||
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch | 149 | ||||
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch | 73 | ||||
-rw-r--r-- | kde-plasma/kwin/kwin-5.18.5-r1.ebuild (renamed from kde-plasma/kwin/kwin-5.17.5-r1.ebuild) | 13 | ||||
-rw-r--r-- | kde-plasma/kwin/kwin-5.18.5.ebuild | 111 |
5 files changed, 235 insertions, 117 deletions
diff --git a/kde-plasma/kwin/Manifest b/kde-plasma/kwin/Manifest index 95563ffad1dc..7dad8cb6151e 100644 --- a/kde-plasma/kwin/Manifest +++ b/kde-plasma/kwin/Manifest @@ -1,6 +1,6 @@ AUX kwin-5.16.80-gstreamer-optional.patch 963 BLAKE2B 7a65b1e36ba1261cd97c9cca8cca39a03f932ef23780c9d5f1104bdac665744dd03878a5b7f1ccc20dccab42facb8d97474c31548b602db0debb27e5490ac76e SHA512 2b1de2ceeeed51bcc691273caea969243ef08ced929030daa94c0f19bad2fb31a507e3efbb9018833a8bd3b66850380dfbefb9018fa39e00664a1295b9482183 -DIST kwin-5.17.5.tar.xz 6251468 BLAKE2B 52e2c11e6164d0c1da49f818e842fdbfdea599460204ada2fdd5f1f09cb230d4c1fe96e8c00a85d8c9518af7cfcbefc584d0223701448b5afc009af5cf01e0cd SHA512 67e1f7044579b7c1ef7feacf92910f449c7eb5f6ca3ada3e1ff5820f811c1b4a168690b74a163659c84c9daf0094144b5584f287fefeaff8effab48bab7258f7 +AUX kwin-5.18.5-dont-exec-QDialog.patch 5916 BLAKE2B a8506ca70519c5f4a0d57ee26b76897f292d2d62cfe72b04084a8f098c543db7c431cd0d7c86a5689a064b86bda3223ea200aa803605aa6708a3bc037498ecd3 SHA512 ea9b4715ae677f22f46d0ef8661b9f8c75b27eadab928307dad0093e9f60592f9866dcb38d84794e621b3304690d5226a139d172411dd75155088701090eeba9 +AUX kwin-5.18.5-wayland-lockscreen-greeter.patch 2254 BLAKE2B ce05dd3389e5de51ffa960215c963765170b72a439e1b9440f3614bc64fdb7949c040f686ff935b357f6a96d88aced49f5aa23a0e36b6065555bea59b3e58547 SHA512 5b72401deb460d3d09f444f1a120d5bf75c0c3ed7e75c609b57a5a46a84159ba80be8e9277b50a9c1796e46ce34712fc5bce8bb7021b9e4199d7b5a798e42efa DIST kwin-5.18.5.tar.xz 6274772 BLAKE2B 1614515df60667fb6e8f45302db13dc43ca896c7266c2e2846fd1a1da75b4054cbe14a27b8b3f7d71ae6398e2cf4d9e8e2a68af1c1fa6809a271c5b29574a023 SHA512 b703891824ec31e8ae29df27a11499579ab95789a838e893d5904e40aeba27b0ddc04836038d5b4c062d75ceed277d07e67eeb1b4e957ccf414f03786037d562 -EBUILD kwin-5.17.5-r1.ebuild 3008 BLAKE2B 379173f5f8d92fe4657383dbf537188f81a6b0ee5732d967b3970f97a095e5a9bb056f12f65fb12546d1d71af005b22ab70c4c9ece2fe9520b5a445ddcb47010 SHA512 ada392af0be05ac08ec8c6275ea78d76946231b16890538d12a64965ff4f8303b8e8d4e32b83bf0445eaf75f4169b345a5ffac359e40697cfd475d1f392b8b86 -EBUILD kwin-5.18.5.ebuild 3012 BLAKE2B dc839920a16255c3198d3bcbf69697164f49cdcd957a21cec9a58fd3ae8bb31dc3e62effd70568e912d45d26feb9a7f2d50a8c0c516080efb931a6587568352d SHA512 efac2ffd57ee4c3fb9b004aafb7a7a7c92ea53fba6d808fe1278baef50718dc0eb74a5ffa9638ca662da89859ea7352b35e2257c583e95feaf189b825c6a16bc +EBUILD kwin-5.18.5-r1.ebuild 3171 BLAKE2B abf91e2d96656acb472fde3ce1ae1247d72a4720427e2faae702a41a669d0cb2dd7db9b1b12ec0b5cf34edd27b3d494c700d9faa566435f0fb9b6ee75b08e133 SHA512 ebef4cfc82c7a4318739b9eff76c5ce32f526b451a67b5e2b0f44448dc4d3dfe837d069dfcafc3ad6cc31251071a41ef4e3e3ac89d330eea04d748fb9bd7ad8c MISC metadata.xml 347 BLAKE2B 9288920f1da9d97be4ba082678abbd6c404efdd6d7c6b997015e38e7d1f36f2b6201bda92799af0ac02287e86d2525c0a7e783e7efd305ed67ff8b96715ffe59 SHA512 e9e82ec176a53e1bea1eb323c1d1daffdcf900f1787ae76fd3de0434ffb8ac77429131ebbfc11080a1771ed03195e7d98c98be2ebf6a444de95d6cd0eb539824 diff --git a/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch b/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch new file mode 100644 index 000000000000..df65c32fb13a --- /dev/null +++ b/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch @@ -0,0 +1,149 @@ +From 5ea54eda5d1f91428933d338ea8b950aea86d43a Mon Sep 17 00:00:00 2001 +From: Kai Uwe Broulik <kde@privat.broulik.de> +Date: Wed, 6 May 2020 15:15:03 +0200 +Subject: [kcmkwin/kwindecoration] Don't exec() QDialog + +Using nested event loops with QML is always troublesome. + +BUG: 421053 +FIXED-IN: 5.18.6 + +Differential Revision: https://phabricator.kde.org/D29473 +--- + .../declarative-plugin/previewbridge.cpp | 32 +++++++++++++++------- + .../declarative-plugin/previewbridge.h | 4 ++- + .../kwindecoration/package/contents/ui/Themes.qml | 3 +- + 3 files changed, 27 insertions(+), 12 deletions(-) + +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp +index bad4cc1..83a9bd9 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp +@@ -36,7 +36,11 @@ + #include <QDialog> + #include <QDialogButtonBox> + #include <QPushButton> ++#include <QQuickItem> ++#include <QQuickRenderControl> ++#include <QQuickWindow> + #include <QVBoxLayout> ++#include <QWindow> + + namespace KDecoration2 + { +@@ -173,15 +177,16 @@ DecorationButton *PreviewBridge::createButton(KDecoration2::Decoration *decorati + return m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)})); + } + +-void PreviewBridge::configure() ++void PreviewBridge::configure(QQuickItem *ctx) + { + if (!m_valid) { + return; + } + //setup the UI +- QDialog dialog; ++ QDialog *dialog = new QDialog(); ++ dialog->setAttribute(Qt::WA_DeleteOnClose); + if (m_lastCreatedClient) { +- dialog.setWindowTitle(m_lastCreatedClient->caption()); ++ dialog->setWindowTitle(m_lastCreatedClient->caption()); + } + + // create the KCModule through the plugintrader +@@ -189,7 +194,7 @@ void PreviewBridge::configure() + if (!m_theme.isNull()) { + args.insert(QStringLiteral("theme"), m_theme); + } +- KCModule *kcm = m_factory->create<KCModule>(QStringLiteral("kcmodule"), &dialog, QVariantList({args})); ++ KCModule *kcm = m_factory->create<KCModule>(QStringLiteral("kcmodule"), dialog, QVariantList({args})); + if (!kcm) { + return; + } +@@ -205,28 +210,35 @@ void PreviewBridge::configure() + QStringLiteral("reloadConfig")); + QDBusConnection::sessionBus().send(message); + }; +- connect(&dialog, &QDialog::accepted, this, save); ++ connect(dialog, &QDialog::accepted, this, save); + + QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | + QDialogButtonBox::Cancel | + QDialogButtonBox::RestoreDefaults | + QDialogButtonBox::Reset, +- &dialog); ++ dialog); + + QPushButton *reset = buttons->button(QDialogButtonBox::Reset); + reset->setEnabled(false); + // Here we connect our buttons with the dialog +- connect(buttons, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); +- connect(buttons, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); ++ connect(buttons, &QDialogButtonBox::accepted, dialog, &QDialog::accept); ++ connect(buttons, &QDialogButtonBox::rejected, dialog, &QDialog::reject); + connect(reset, &QPushButton::clicked, kcm, &KCModule::load); + auto changedSignal = static_cast<void(KCModule::*)(bool)>(&KCModule::changed); + connect(kcm, changedSignal, reset, &QPushButton::setEnabled); + connect(buttons->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, kcm, &KCModule::defaults); + +- QVBoxLayout *layout = new QVBoxLayout(&dialog); ++ QVBoxLayout *layout = new QVBoxLayout(dialog); + layout->addWidget(kcm); + layout->addWidget(buttons); +- dialog.exec(); ++ ++ if (ctx->window()) { ++ dialog->winId(); // so it creates windowHandle ++ dialog->windowHandle()->setTransientParent(QQuickRenderControl::renderWindowFor(ctx->window())); ++ dialog->setModal(true); ++ } ++ ++ dialog->show(); + } + + BridgeItem::BridgeItem(QObject *parent) +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h +index 7e1d8f3..85fccbe 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h +@@ -26,6 +26,8 @@ + #include <QList> + #include <QPointer> + ++class QQuickItem; ++ + class KPluginFactory; + + namespace KDecoration2 +@@ -70,7 +72,7 @@ public: + KDecoration2::DecorationButton *createButton(KDecoration2::Decoration *decoration, KDecoration2::DecorationButtonType type, QObject *parent = nullptr); + + public Q_SLOTS: +- void configure(); ++ void configure(QQuickItem *ctx); + + Q_SIGNALS: + void pluginChanged(); +diff --git a/kcmkwin/kwindecoration/package/contents/ui/Themes.qml b/kcmkwin/kwindecoration/package/contents/ui/Themes.qml +index 28e5899..1eeb4cd 100644 +--- a/kcmkwin/kwindecoration/package/contents/ui/Themes.qml ++++ b/kcmkwin/kwindecoration/package/contents/ui/Themes.qml +@@ -40,6 +40,7 @@ KCM.GridView { + view.implicitCellWidth: Kirigami.Units.gridUnit * 18 + + view.delegate: KCM.GridDelegate { ++ id: delegate + text: model.display + + thumbnailAvailable: true +@@ -101,7 +102,7 @@ KCM.GridView { + onTriggered: { + kcm.theme = index + view.currentIndex = index +- bridgeItem.bridge.configure() ++ bridgeItem.bridge.configure(delegate) + } + } + ] +-- +cgit v1.1 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 000000000000..ac4b9d24c8e1 --- /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 <vlad.zahorodnii@kde.org> +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.17.5-r1.ebuild b/kde-plasma/kwin/kwin-5.18.5-r1.ebuild index 27859ed33e22..33ac47b0ae2a 100644 --- a/kde-plasma/kwin/kwin-5.17.5-r1.ebuild +++ b/kde-plasma/kwin/kwin-5.18.5-r1.ebuild @@ -5,13 +5,14 @@ EAPI=7 ECM_HANDBOOK="optional" ECM_TEST="optional" -VIRTUALX_REQUIRED="test" -KFMIN=5.64.0 +KFMIN=5.66.0 PVCUT=$(ver_cut 1-3) QTMIN=5.12.3 +VIRTUALX_REQUIRED="test" inherit ecm kde.org DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" + LICENSE="GPL-2+" SLOT="5" KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" @@ -59,7 +60,6 @@ COMMON_DEPEND=" media-libs/freetype media-libs/libepoxy media-libs/mesa[egl,gbm,wayland,X(+)] - gles2-only? ( media-libs/mesa[gles2] ) virtual/libudev:= x11-libs/libICE x11-libs/libSM @@ -73,6 +73,7 @@ COMMON_DEPEND=" x11-libs/xcb-util-keysyms x11-libs/xcb-util-wm caps? ( sys-libs/libcap ) + gles2-only? ( media-libs/mesa[gles2] ) " RDEPEND="${COMMON_DEPEND} >=kde-frameworks/kirigami-${KFMIN}:5 @@ -92,6 +93,12 @@ PDEPEND=" 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() { ecm_src_prepare use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch" diff --git a/kde-plasma/kwin/kwin-5.18.5.ebuild b/kde-plasma/kwin/kwin-5.18.5.ebuild deleted file mode 100644 index a66ce81e1bc2..000000000000 --- a/kde-plasma/kwin/kwin-5.18.5.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_HANDBOOK="optional" -ECM_TEST="optional" -KFMIN=5.66.0 -PVCUT=$(ver_cut 1-3) -QTMIN=5.12.3 -VIRTUALX_REQUIRED="test" -inherit ecm kde.org - -DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" - -LICENSE="GPL-2+" -SLOT="5" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="caps gles2-only multimedia" - -COMMON_DEPEND=" - >=kde-frameworks/kactivities-${KFMIN}:5 - >=kde-frameworks/kauth-${KFMIN}:5 - >=kde-frameworks/kcmutils-${KFMIN}:5 - >=kde-frameworks/kcompletion-${KFMIN}:5 - >=kde-frameworks/kconfig-${KFMIN}:5 - >=kde-frameworks/kconfigwidgets-${KFMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/kcrash-${KFMIN}:5 - >=kde-frameworks/kdeclarative-${KFMIN}:5 - >=kde-frameworks/kglobalaccel-${KFMIN}:5= - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kiconthemes-${KFMIN}:5 - >=kde-frameworks/kidletime-${KFMIN}:5= - >=kde-frameworks/kinit-${KFMIN}:5 - >=kde-frameworks/kio-${KFMIN}:5 - >=kde-frameworks/knewstuff-${KFMIN}:5 - >=kde-frameworks/knotifications-${KFMIN}:5 - >=kde-frameworks/kpackage-${KFMIN}:5 - >=kde-frameworks/kservice-${KFMIN}:5 - >=kde-frameworks/ktextwidgets-${KFMIN}:5 - >=kde-frameworks/kwayland-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=kde-frameworks/kwindowsystem-${KFMIN}:5[X] - >=kde-frameworks/kxmlgui-${KFMIN}:5 - >=kde-frameworks/plasma-${KFMIN}:5 - >=kde-plasma/breeze-${PVCUT}:5 - >=kde-plasma/kdecoration-${PVCUT}:5 - >=kde-plasma/kscreenlocker-${PVCUT}:5 - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtdeclarative-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5=[gles2-only=] - >=dev-qt/qtscript-${QTMIN}:5 - >=dev-qt/qtsensors-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=dev-qt/qtx11extras-${QTMIN}:5 - >=dev-libs/libinput-1.9 - >=dev-libs/wayland-1.2 - media-libs/fontconfig - media-libs/freetype - media-libs/libepoxy - media-libs/mesa[egl,gbm,wayland,X(+)] - virtual/libudev:= - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXi - x11-libs/libdrm - >=x11-libs/libxcb-1.10 - >=x11-libs/libxkbcommon-0.7.0 - x11-libs/xcb-util-cursor - x11-libs/xcb-util-image - x11-libs/xcb-util-keysyms - x11-libs/xcb-util-wm - caps? ( sys-libs/libcap ) - gles2-only? ( media-libs/mesa[gles2] ) -" -RDEPEND="${COMMON_DEPEND} - >=kde-frameworks/kirigami-${KFMIN}:5 - >=dev-qt/qtquickcontrols-${QTMIN}:5 - >=dev-qt/qtquickcontrols2-${QTMIN}:5 - >=dev-qt/qtvirtualkeyboard-${QTMIN}:5 - multimedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5[gstreamer,qml] ) -" -DEPEND="${COMMON_DEPEND} - >=dev-qt/designer-${QTMIN}:5 - >=dev-qt/qtconcurrent-${QTMIN}:5 - x11-base/xorg-proto -" -PDEPEND=" - >=kde-plasma/kde-cli-tools-${PVCUT}:5 -" - -RESTRICT+=" test" - -src_prepare() { - ecm_src_prepare - use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch" - - # Access violations, bug #640432 - sed -e "s/^ecm_find_qmlmodule.*QtMultimedia/#&/" \ - -i CMakeLists.txt || die -} - -src_configure() { - local mycmakeargs=( - $(cmake_use_find_package caps Libcap) - ) - - ecm_src_configure -} |