diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-05-29 22:18:28 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-05-29 22:24:16 +0200 |
commit | 91473a70ffada90c41026d9ddc8d2ca4a4bc4b9e (patch) | |
tree | 2cf9facc133d107b9809c01cf23dfbdbe724ba85 /kde-plasma/kwin | |
parent | kde-plasma/kwayland-server: Drop 5.24.4 (diff) | |
download | gentoo-91473a70ffada90c41026d9ddc8d2ca4a4bc4b9e.tar.gz gentoo-91473a70ffada90c41026d9ddc8d2ca4a4bc4b9e.tar.bz2 gentoo-91473a70ffada90c41026d9ddc8d2ca4a4bc4b9e.zip |
kde-plasma/kwin: Drop 5.24.4
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-plasma/kwin')
11 files changed, 0 insertions, 714 deletions
diff --git a/kde-plasma/kwin/Manifest b/kde-plasma/kwin/Manifest index 0eb8c11148ea..d174791307a4 100644 --- a/kde-plasma/kwin/Manifest +++ b/kde-plasma/kwin/Manifest @@ -1,2 +1 @@ -DIST kwin-5.24.4.tar.xz 6448844 BLAKE2B 3e58ae22d2ff254f4c08a8c6662702e5dae97dd207ca8d1d51cc203826d4b68a5eecffea69cd6eb4de5894e09e73340cda540e41db3753873cab72a76936e6d4 SHA512 2e1389a68e373791bd397294c834fb1cdbab24f32253eeaf505bb1878b8a8a5cd02d1250cae181c00dc73d6a524ff44cd1fbf2e101f13adf915f30f15c738df3 DIST kwin-5.24.5.tar.xz 6453932 BLAKE2B cd042dd8c9168e11bc39d15969c57a97fd5c47b1af3e3a6235cabad166c4925c51541d52f7bf96f3132b3ecfeb91547845d6af3893ab5f31b41df4a926e83993 SHA512 4fad8b39a588a44f89e2640358d8e563047fa889a9bdaf246c1c87d320aa5f5b9d3d6bef702314fb06d2bfe16d0445efe736de60d94b4409f9b5efcdac48d089 diff --git a/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-dont-perm-disable-vrr.patch b/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-dont-perm-disable-vrr.patch deleted file mode 100644 index 38d4771c2345..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-dont-perm-disable-vrr.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a5404234dbd26e170acb97789599fbcd705cf6cb Mon Sep 17 00:00:00 2001 -From: Xaver Hugl <xaver.hugl@gmail.com> -Date: Fri, 8 Apr 2022 17:47:09 +0200 -Subject: [PATCH] backends/drm: don't permanently disable VRR when the test - commit fails - -In 5.24, the same code path is used for testing direct scanout, so that -causes false negatives. Generally though, the user setting shouldn't be -touched, it's not really proper feedback for the driver or KWin having -problems. - - -(cherry picked from commit 2ef6215a517e4220f147f5327e7ecdad02762b64) ---- - src/backends/drm/drm_output.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/backends/drm/drm_output.cpp b/src/backends/drm/drm_output.cpp -index bd08631cf7..048803883b 100644 ---- a/src/backends/drm/drm_output.cpp -+++ b/src/backends/drm/drm_output.cpp -@@ -337,7 +337,6 @@ bool DrmOutput::present(const QSharedPointer<DrmBuffer> &buffer, QRegion damaged - m_pipeline->applyPendingChanges(); - } else { - m_pipeline->revertPendingChanges(); -- setVrrPolicy(RenderLoop::VrrPolicy::Never); - } - } - if (m_pipeline->present(buffer)) { --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-fetch-immutable-blobs.patch b/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-fetch-immutable-blobs.patch deleted file mode 100644 index 16c7756d33e2..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-backends-drm-fetch-immutable-blobs.patch +++ /dev/null @@ -1,214 +0,0 @@ -From 82c2324b5675ea2d5e3b962f270bda1d186e7326 Mon Sep 17 00:00:00 2001 -From: Xaver Hugl <xaver.hugl@gmail.com> -Date: Mon, 4 Apr 2022 20:19:05 +0200 -Subject: [PATCH] backends/drm: fetch immutable blobs in DrmProperty - -If the blob is fetched while there is no kernel-visible reference to it, -the driver may re-use the blob ID. When DrmProperty is created or updated, -KWin holds a reference on the blob via drmModeObjectProperties, so this -should prevent any possible issues. - -CCBUG: 449285 ---- - src/backends/drm/drm_object_connector.cpp | 13 +++----- - src/backends/drm/drm_object_plane.cpp | 39 +++++++++++------------ - src/backends/drm/drm_property.cpp | 27 +++++++++++++++- - src/backends/drm/drm_property.h | 7 +++- - 4 files changed, 54 insertions(+), 32 deletions(-) - -diff --git a/src/backends/drm/drm_object_connector.cpp b/src/backends/drm/drm_object_connector.cpp -index a0045290df..0cdbd70b4f 100644 ---- a/src/backends/drm/drm_object_connector.cpp -+++ b/src/backends/drm/drm_object_connector.cpp -@@ -337,16 +337,11 @@ bool DrmConnector::updateProperties() - } - - // parse edid -- auto edidProp = getProp(PropertyIndex::Edid); -- if (edidProp) { -- DrmScopedPointer<drmModePropertyBlobRes> blob(drmModeGetPropertyBlob(gpu()->fd(), edidProp->current())); -- if (blob && blob->data) { -- m_edid = Edid(blob->data, blob->length); -- if (!m_edid.isValid()) { -- qCWarning(KWIN_DRM) << "Couldn't parse EDID for connector" << this; -- } -+ if (const auto edidProp = getProp(PropertyIndex::Edid); edidProp && edidProp->immutableBlob()) { -+ m_edid = Edid(edidProp->immutableBlob()->data, edidProp->immutableBlob()->length); -+ if (!m_edid.isValid()) { -+ qCWarning(KWIN_DRM) << "Couldn't parse EDID for connector" << this; - } -- deleteProp(PropertyIndex::Edid); - } else { - qCDebug(KWIN_DRM) << "Could not find edid for connector" << this; - } -diff --git a/src/backends/drm/drm_object_plane.cpp b/src/backends/drm/drm_object_plane.cpp -index 6967fdd50d..c4dcca96d4 100644 ---- a/src/backends/drm/drm_object_plane.cpp -+++ b/src/backends/drm/drm_object_plane.cpp -@@ -73,29 +73,26 @@ bool DrmPlane::init() - checkSupport(5, Transformation::ReflectY); - - // read formats from blob if available and if modifiers are supported, and from the plane object if not -- if (auto formatProp = getProp(PropertyIndex::In_Formats); formatProp && gpu()->addFB2ModifiersSupported()) { -- DrmScopedPointer<drmModePropertyBlobRes> propertyBlob(drmModeGetPropertyBlob(gpu()->fd(), formatProp->current())); -- if (propertyBlob && propertyBlob->data) { -- auto blob = static_cast<drm_format_modifier_blob*>(propertyBlob->data); -- auto modifiers = reinterpret_cast<drm_format_modifier*>(reinterpret_cast<uint8_t*>(blob) + blob->modifiers_offset); -- uint32_t *formatarr = reinterpret_cast<uint32_t*>(reinterpret_cast<uint8_t*>(blob) + blob->formats_offset); -- -- for (uint32_t f = 0; f < blob->count_formats; f++) { -- auto format = formatarr[f]; -- QVector<uint64_t> mods; -- for (uint32_t m = 0; m < blob->count_modifiers; m++) { -- auto modifier = &modifiers[m]; -- // The modifier advertisement blob is partitioned into groups of 64 formats -- if (m < modifier->offset || m > modifier->offset + 63) { -- continue; -- } -- if (!(modifier->formats & (1 << (f - modifier->offset)))) { -- continue; -- } -- mods << modifier->modifier; -+ if (const auto formatProp = getProp(PropertyIndex::In_Formats); formatProp && formatProp->immutableBlob() && gpu()->addFB2ModifiersSupported()) { -+ auto blob = static_cast<drm_format_modifier_blob *>(formatProp->immutableBlob()->data); -+ auto modifiers = reinterpret_cast<drm_format_modifier *>(reinterpret_cast<uint8_t *>(blob) + blob->modifiers_offset); -+ uint32_t *formatarr = reinterpret_cast<uint32_t *>(reinterpret_cast<uint8_t *>(blob) + blob->formats_offset); -+ -+ for (uint32_t f = 0; f < blob->count_formats; f++) { -+ auto format = formatarr[f]; -+ QVector<uint64_t> mods; -+ for (uint32_t m = 0; m < blob->count_modifiers; m++) { -+ auto modifier = &modifiers[m]; -+ // The modifier advertisement blob is partitioned into groups of 64 formats -+ if (m < modifier->offset || m > modifier->offset + 63) { -+ continue; - } -- m_supportedFormats.insert(format, mods); -+ if (!(modifier->formats & (1 << (f - modifier->offset)))) { -+ continue; -+ } -+ mods << modifier->modifier; - } -+ m_supportedFormats.insert(format, mods); - } - } else { - for (uint32_t i = 0; i < p->count_formats; i++) { -diff --git a/src/backends/drm/drm_property.cpp b/src/backends/drm/drm_property.cpp -index 28af8ec07f..8ab0dc0e5a 100644 ---- a/src/backends/drm/drm_property.cpp -+++ b/src/backends/drm/drm_property.cpp -@@ -24,6 +24,7 @@ DrmProperty::DrmProperty(DrmObject *obj, drmModePropertyRes *prop, uint64_t val, - , m_next(val) - , m_current(val) - , m_immutable(prop->flags & DRM_MODE_PROP_IMMUTABLE) -+ , m_isBlob(prop->flags & DRM_MODE_PROP_BLOB) - , m_obj(obj) - { - if (!enumNames.isEmpty()) { -@@ -35,6 +36,7 @@ DrmProperty::DrmProperty(DrmObject *obj, drmModePropertyRes *prop, uint64_t val, - m_minValue = prop->values[0]; - m_maxValue = prop->values[1]; - } -+ updateBlob(); - } - - DrmProperty::~DrmProperty() = default; -@@ -110,7 +112,10 @@ bool DrmProperty::needsCommit() const - - void DrmProperty::setCurrent(uint64_t value) - { -- m_current = value; -+ if (m_current != value) { -+ updateBlob(); -+ m_current = value; -+ } - } - - uint64_t DrmProperty::current() const -@@ -122,10 +127,12 @@ QVector<QByteArray> DrmProperty::enumNames() const - { - return m_enumNames; - } -+ - bool DrmProperty::hasEnum(uint64_t value) const - { - return m_enumMap.contains(value); - } -+ - bool DrmProperty::hasAllEnums() const - { - return m_enumMap.count() == m_enumNames.count(); -@@ -166,4 +173,22 @@ uint64_t DrmProperty::maxValue() const - return m_maxValue; - } - -+void DrmProperty::updateBlob() -+{ -+ if (m_immutable && m_isBlob) { -+ if (m_current != 0) { -+ m_immutableBlob.reset(drmModeGetPropertyBlob(m_obj->gpu()->fd(), m_current)); -+ if (m_immutableBlob && (!m_immutableBlob->data || !m_immutableBlob->length)) { -+ m_immutableBlob.reset(); -+ } -+ } else { -+ m_immutableBlob.reset(); -+ } -+ } -+} -+ -+drmModePropertyBlobRes *DrmProperty::immutableBlob() const -+{ -+ return m_immutableBlob.get(); -+} - } -diff --git a/src/backends/drm/drm_property.h b/src/backends/drm/drm_property.h -index 48bdeafdc2..1ae547f41e 100644 ---- a/src/backends/drm/drm_property.h -+++ b/src/backends/drm/drm_property.h -@@ -9,9 +9,9 @@ - */ - - #pragma once -+#include "drm_pointer.h" - - #include <xf86drmMode.h> -- - #include <QVector> - #include <QMap> - #include <QByteArray> -@@ -59,6 +59,7 @@ public: - - void setCurrent(uint64_t value); - uint64_t current() const; -+ drmModePropertyBlobRes *immutableBlob() const; - - uint64_t minValue() const; - uint64_t maxValue() const; -@@ -78,6 +79,8 @@ public: - } - - private: -+ void updateBlob(); -+ - uint32_t m_propId = 0; - QByteArray m_propName; - -@@ -89,6 +92,7 @@ private: - uint64_t m_next = 0; - // the value currently set for or by the kernel - uint64_t m_current = 0; -+ DrmScopedPointer<drmModePropertyBlobRes> m_immutableBlob; - - uint64_t m_minValue = -1; - uint64_t m_maxValue = -1; -@@ -96,6 +100,7 @@ private: - QMap<uint32_t, uint64_t> m_enumMap; - QVector<QByteArray> m_enumNames; - const bool m_immutable; -+ const bool m_isBlob; - bool m_legacy = false; - const DrmObject *m_obj; - }; --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-dont-send-geom-to-text-input.patch b/kde-plasma/kwin/files/kwin-5.24.4-dont-send-geom-to-text-input.patch deleted file mode 100644 index acd7bf4149ab..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-dont-send-geom-to-text-input.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a35e3075a7aa4616c8930ccd3869dc4cca5d287e Mon Sep 17 00:00:00 2001 -From: Weng Xuetian <wengxt@gmail.com> -Date: Sat, 9 Apr 2022 07:25:44 -0700 -Subject: [PATCH] Do not send overlay geometry to text input. - -(cherry picked from commit 374e94918238f3ddb9d00c542f281d3d8a309efb) ---- - src/inputmethod.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/inputmethod.cpp b/src/inputmethod.cpp -index e7951d9580..5b8e54efbc 100644 ---- a/src/inputmethod.cpp -+++ b/src/inputmethod.cpp -@@ -615,7 +615,7 @@ void InputMethod::updateInputPanelState() - const bool bottomKeyboard = m_inputClient && m_inputClient->mode() != InputPanelV1Client::Overlay && m_inputClient->isShown(); - m_trackedClient->setVirtualKeyboardGeometry(bottomKeyboard ? m_inputClient->inputGeometry() : QRect()); - -- if (m_inputClient) { -+ if (m_inputClient && m_inputClient->mode() != InputPanelV1Client::Overlay) { - overlap = m_trackedClient->frameGeometry() & m_inputClient->inputGeometry(); - overlap.moveTo(m_trackedClient->mapToLocal(overlap.topLeft())); - } --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-dont-use-xcb-in-wayland.patch b/kde-plasma/kwin/files/kwin-5.24.4-dont-use-xcb-in-wayland.patch deleted file mode 100644 index 667b91b8dc5c..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-dont-use-xcb-in-wayland.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 7a26f93cb579cf6b1cbc1e32790f93be70013157 Mon Sep 17 00:00:00 2001 -From: Xaver Hugl <xaver.hugl@gmail.com> -Date: Tue, 12 Apr 2022 15:45:52 +0200 -Subject: [PATCH] effects/kscreen: don't use xcb on Wayland - -BUG: 450564 -FIXED-IN: 5.24.5 -(cherry picked from commit db3f27336f2172fd70be3411874d9bbeb3db6a24) ---- - src/effects/kscreen/kscreen.cpp | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/effects/kscreen/kscreen.cpp b/src/effects/kscreen/kscreen.cpp -index 9484399756..0673915aad 100644 ---- a/src/effects/kscreen/kscreen.cpp -+++ b/src/effects/kscreen/kscreen.cpp -@@ -44,15 +44,15 @@ namespace KWin - - KscreenEffect::KscreenEffect() - : Effect() -- , m_atom(effects->announceSupportProperty("_KDE_KWIN_KSCREEN_SUPPORT", this)) -+ , m_atom(effects->waylandDisplay() ? XCB_ATOM_NONE : effects->announceSupportProperty("_KDE_KWIN_KSCREEN_SUPPORT", this)) - { - initConfig<KscreenConfig>(); -- connect(effects, &EffectsHandler::propertyNotify, this, &KscreenEffect::propertyNotify); -- connect(effects, &EffectsHandler::xcbConnectionChanged, this, -- [this] { -+ if (!effects->waylandDisplay()) { -+ connect(effects, &EffectsHandler::propertyNotify, this, &KscreenEffect::propertyNotify); -+ connect(effects, &EffectsHandler::xcbConnectionChanged, this, [this]() { - m_atom = effects->announceSupportProperty(QByteArrayLiteral("_KDE_KWIN_KSCREEN_SUPPORT"), this); -- } -- ); -+ }); -+ } - reconfigure(ReconfigureAll); - - const QList<EffectScreen *> screens = effects->screens(); --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch b/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch deleted file mode 100644 index 195d33b1f3a2..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch +++ /dev/null @@ -1,50 +0,0 @@ -From c1d7919ad7cc8a7e55f5b93ec84de63547bc53b9 Mon Sep 17 00:00:00 2001 -From: Ismael Asensio <isma.af@gmail.com> -Date: Fri, 8 Apr 2022 22:53:08 +0200 -Subject: [PATCH] AbstractClient: Fix the current VD being always added to the - plasma interface - -When setting-up the plasma window interface we need to call -`setOnAllDesktops()` after the actual virtual desktops have -been set. - -Otherwise, the current desktop would be always added to the -interface (as if the user were unsetting the "onAllDesktops" -flag) and the plasma interface and KWin can get un-synced, -specially if there are specific window rules. - -BUG: 452171 -FIXED-IN: 5.24.5 - - -(cherry picked from commit 4c8711f121430caa658f9848070e4e25c4a12208) ---- - src/abstract_client.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/abstract_client.cpp b/src/abstract_client.cpp -index 7e8a7eec04..0714b9ac3f 100644 ---- a/src/abstract_client.cpp -+++ b/src/abstract_client.cpp -@@ -1488,7 +1488,6 @@ void AbstractClient::setupWindowManagementInterface() - w->setKeepBelow(keepBelow()); - w->setMaximized(maximizeMode() == KWin::MaximizeFull); - w->setMinimized(isMinimized()); -- w->setOnAllDesktops(isOnAllDesktops()); - w->setDemandsAttention(isDemandingAttention()); - w->setCloseable(isCloseable()); - w->setMaximizeable(isMaximizable()); -@@ -1620,6 +1619,10 @@ void AbstractClient::setupWindowManagementInterface() - for (const auto vd : qAsConst(m_desktops)) { - w->addPlasmaVirtualDesktop(vd->id()); - } -+ // We need to set `OnAllDesktops` after the actual VD list has been added. -+ // Otherwise it will unconditionally add the current desktop to the interface -+ // which may not be the case, for example, when using rules -+ w->setOnAllDesktops(isOnAllDesktops()); - - //Plasma Virtual desktop management - //show/hide when the window enters/exits from desktop --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-fix-unlocking-wayland-sessions.patch b/kde-plasma/kwin/files/kwin-5.24.4-fix-unlocking-wayland-sessions.patch deleted file mode 100644 index 9e9a4dabc998..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-fix-unlocking-wayland-sessions.patch +++ /dev/null @@ -1,44 +0,0 @@ -From ee625b2d8acad2ba81693107740a12d8a03863c0 Mon Sep 17 00:00:00 2001 -From: Aleix Pol <aleixpol@kde.org> -Date: Mon, 28 Mar 2022 03:40:12 +0200 -Subject: [PATCH] Fix unlocking wayland sessions - -We were never issuing a repaint which confused thoroughly the -compositor. - -BUG: 447705 ---- - src/wayland_server.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/wayland_server.cpp b/src/wayland_server.cpp -index eb3600f824..9e60787465 100644 ---- a/src/wayland_server.cpp -+++ b/src/wayland_server.cpp -@@ -15,6 +15,7 @@ - #include "inputpanelv1integration.h" - #include "keyboard_input.h" - #include "screens.h" -+#include "scene.h" - #include "layershellv1integration.h" - #include "main.h" - #include "xdgshellintegration.h" -@@ -610,6 +611,7 @@ void WaylandServer::initScreenLocker() - connect(seat, &KWaylandServer::SeatInterface::timestampChanged, - screenLockerApp, &ScreenLocker::KSldApp::userActivity); - } -+ Compositor::self()->scene()->addRepaintFull(); - } - ); - -@@ -627,6 +629,7 @@ void WaylandServer::initScreenLocker() - screenLockerApp, &ScreenLocker::KSldApp::userActivity); - } - ScreenLocker::KSldApp::self()->setWaylandFd(-1); -+ Compositor::self()->scene()->addRepaintFull(); - } - ); - --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-lockScreenShown.patch b/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-lockScreenShown.patch deleted file mode 100644 index 4defd5ae5945..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-lockScreenShown.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 9d38f57d84fb9a6f2c4e60f7051f685842f34e0f Mon Sep 17 00:00:00 2001 -From: Xaver Hugl <xaver.hugl@gmail.com> -Date: Mon, 28 Mar 2022 18:08:59 +0200 -Subject: [PATCH] waylandserver: only signal lockScreenShown once it has - actually been shown - -When the system goes to suspend and screen locking for suspend is enabled, -suspend is inhibited until ScreenLocker::KSldApp::self()->lockScreenShown() -gets called, in order to make sure that the lockscreen is shown before the -system goes to standby, and thus also when the system wakes (instead of -potentially sensitive user information). -However, signalling that when the lockscreen gets mapped can't work reliably, -as it's then a matter of timing whether or not KWin actually presents an -image with the lockscreen before suspending. To fix that, this commit replaces -that logic with only calling lockScreenShown once every output actually got a -lockscreen presented. ---- - src/wayland_server.cpp | 25 +++++++++++++++++++++---- - src/wayland_server.h | 10 ++++++++++ - 2 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/src/wayland_server.cpp b/src/wayland_server.cpp -index c850a1b697..6d5e1206a5 100644 ---- a/src/wayland_server.cpp -+++ b/src/wayland_server.cpp -@@ -213,10 +213,6 @@ KWaylandServer::ClientConnection *WaylandServer::inputMethodConnection() const - - void WaylandServer::registerShellClient(AbstractClient *client) - { -- if (client->isLockScreen()) { -- ScreenLocker::KSldApp::self()->lockScreenShown(); -- } -- - if (client->readyForPainting()) { - Q_EMIT shellClientAdded(client); - } else { -@@ -623,6 +619,8 @@ void WaylandServer::initScreenLocker() - m_screenLockerClientConnection = nullptr; - } - -+ new LockScreenPresentationWatcher(this); -+ - const QVector<SeatInterface *> seatIfaces = m_display->seats(); - for (auto *seat : seatIfaces) { - disconnect(seat, &KWaylandServer::SeatInterface::timestampChanged, -@@ -797,4 +795,23 @@ QString WaylandServer::socketName() const - return QString(); - } - -+WaylandServer::LockScreenPresentationWatcher::LockScreenPresentationWatcher(WaylandServer *server) -+{ -+ connect(server, &WaylandServer::shellClientAdded, this, [this](AbstractClient *client) { -+ if (client->isLockScreen()) { -+ connect(client->output()->renderLoop(), &RenderLoop::framePresented, this, [this, client]() { -+ // only signal lockScreenShown once all outputs have been presented at least once -+ m_signaledOutputs << client->output(); -+ if (m_signaledOutputs.size() == kwinApp()->platform()->enabledOutputs().size()) { -+ ScreenLocker::KSldApp::self()->lockScreenShown(); -+ delete this; -+ } -+ }); -+ } -+ }); -+ QTimer::singleShot(1000, this, [this]() { -+ ScreenLocker::KSldApp::self()->lockScreenShown(); -+ delete this; -+ }); -+} - } -diff --git a/src/wayland_server.h b/src/wayland_server.h -index bf1ba6eee5..58dda9a7a2 100644 ---- a/src/wayland_server.h -+++ b/src/wayland_server.h -@@ -243,6 +243,16 @@ private: - void handleOutputRemoved(AbstractOutput *output); - void handleOutputEnabled(AbstractOutput *output); - void handleOutputDisabled(AbstractOutput *output); -+ -+ class LockScreenPresentationWatcher : public QObject -+ { -+ public: -+ LockScreenPresentationWatcher(WaylandServer *server); -+ -+ private: -+ QSet<AbstractOutput *> m_signaledOutputs; -+ }; -+ - KWaylandServer::Display *m_display = nullptr; - KWaylandServer::CompositorInterface *m_compositor = nullptr; - KWaylandServer::SeatInterface *m_seat = nullptr; --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-move-LockScreenPresentationWatcher.patch b/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-move-LockScreenPresentationWatcher.patch deleted file mode 100644 index 0607e2ff3030..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-waylandserver-move-LockScreenPresentationWatcher.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 388402c3b1b37d9f72597aae8d6670e8c0edeb14 Mon Sep 17 00:00:00 2001 -From: Xaver Hugl <xaver.hugl@gmail.com> -Date: Wed, 6 Apr 2022 21:08:25 +0200 -Subject: [PATCH] waylandserver: move LockScreenPresentationWatcher to the - correct place - -CCBUG: 452334 ---- - src/wayland_server.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/wayland_server.cpp b/src/wayland_server.cpp -index 6d5e1206a5..eb3600f824 100644 ---- a/src/wayland_server.cpp -+++ b/src/wayland_server.cpp -@@ -603,6 +603,8 @@ void WaylandServer::initScreenLocker() - } - ScreenLocker::KSldApp::self()->setWaylandFd(clientFd); - -+ new LockScreenPresentationWatcher(this); -+ - const QVector<SeatInterface *> seatIfaces = m_display->seats(); - for (auto *seat : seatIfaces) { - connect(seat, &KWaylandServer::SeatInterface::timestampChanged, -@@ -619,8 +621,6 @@ void WaylandServer::initScreenLocker() - m_screenLockerClientConnection = nullptr; - } - -- new LockScreenPresentationWatcher(this); -- - const QVector<SeatInterface *> seatIfaces = m_display->seats(); - for (auto *seat : seatIfaces) { - disconnect(seat, &KWaylandServer::SeatInterface::timestampChanged, --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.24.4-xdgactivation-demand-attention.patch b/kde-plasma/kwin/files/kwin-5.24.4-xdgactivation-demand-attention.patch deleted file mode 100644 index 8efa6b637222..000000000000 --- a/kde-plasma/kwin/files/kwin-5.24.4-xdgactivation-demand-attention.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5390a4978f3a3903ede15ecd94a750b37931fbd2 Mon Sep 17 00:00:00 2001 -From: Aleix Pol <aleixpol@kde.org> -Date: Wed, 6 Apr 2022 00:33:21 +0200 -Subject: [PATCH] xdgactivation: Demand attention when a process fails to - resolve its token - -In xdg_activation_v1, if a process fails to negotiate activation, at -least decorate it as demanding attention. -This will give apps ways to indicate attention is required. It can can also -help detect clients doing weird things. - - -(cherry picked from commit 52035f43b90738e2efb4fd7b482719c1ea458578) ---- - src/xdgactivationv1.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/xdgactivationv1.cpp b/src/xdgactivationv1.cpp -index e2270a3393..97f8575c29 100644 ---- a/src/xdgactivationv1.cpp -+++ b/src/xdgactivationv1.cpp -@@ -76,6 +76,7 @@ void XdgActivationV1Integration::activateSurface(SurfaceInterface *surface, cons - - if (!m_currentActivationToken || m_currentActivationToken->token != token) { - qCDebug(KWIN_CORE) << "Refusing to activate " << client << " (provided token: " << token << ", current token:" << (m_currentActivationToken ? m_currentActivationToken->token : QStringLiteral("null")) << ")"; -+ client->demandAttention(); - return; - } - --- -GitLab - diff --git a/kde-plasma/kwin/kwin-5.24.4-r1.ebuild b/kde-plasma/kwin/kwin-5.24.4-r1.ebuild deleted file mode 100644 index 354b862b91c3..000000000000 --- a/kde-plasma/kwin/kwin-5.24.4-r1.ebuild +++ /dev/null @@ -1,145 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_HANDBOOK="optional" -ECM_TEST="optional" -KFMIN=5.90.0 -PVCUT=$(ver_cut 1-3) -QTMIN=5.15.2 -VIRTUALX_REQUIRED="test" -inherit ecm kde.org optfeature - -DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" - -LICENSE="GPL-2+" -SLOT="5" -KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86" -IUSE="accessibility caps gles2-only multimedia plasma screencast" - -RESTRICT="test" - -COMMON_DEPEND=" - >=dev-libs/libinput-1.19 - >=dev-libs/wayland-1.2 - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtdeclarative-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5=[gles2-only=,libinput] - >=dev-qt/qtwidgets-${QTMIN}:5 - >=dev-qt/qtx11extras-${QTMIN}:5 - >=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/kdbusaddons-${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/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 - >=kde-plasma/kwayland-server-${PVCUT}:5 - media-libs/fontconfig - media-libs/freetype - media-libs/lcms:2 - media-libs/libepoxy - >=media-libs/mesa-21.1[egl(+),gbm(+),wayland,X] - virtual/libudev:= - 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 - accessibility? ( media-libs/libqaccessibilityclient:5 ) - caps? ( sys-libs/libcap ) - gles2-only? ( media-libs/mesa[gles2] ) - plasma? ( >=kde-frameworks/krunner-${KFMIN}:5 ) - screencast? ( >=media-video/pipewire-0.3:= ) -" -RDEPEND="${COMMON_DEPEND} - >=dev-qt/qtquickcontrols-${QTMIN}:5 - >=dev-qt/qtquickcontrols2-${QTMIN}:5 - >=dev-qt/qtvirtualkeyboard-${QTMIN}:5 - >=kde-frameworks/kirigami-${KFMIN}:5 - >=kde-frameworks/kitemmodels-${KFMIN}:5[qml] - sys-apps/hwdata - x11-base/xwayland - 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 - test? ( - dev-libs/plasma-wayland-protocols - >=dev-libs/wayland-protocols-1.19 - ) -" -BDEPEND="test? ( >=dev-qt/qtwaylandscanner-${QTMIN}:5 )" -PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5" - -PATCHES=( - "${FILESDIR}"/${P}-waylandserver-lockScreenShown.patch - "${FILESDIR}"/${P}-xdgactivation-demand-attention.patch - "${FILESDIR}"/${P}-waylandserver-move-LockScreenPresentationWatcher.patch - "${FILESDIR}"/${P}-backends-drm-dont-perm-disable-vrr.patch - "${FILESDIR}"/${P}-backends-drm-fetch-immutable-blobs.patch # KDE-bug 449285 - "${FILESDIR}"/${P}-dont-send-geom-to-text-input.patch - "${FILESDIR}"/${P}-fix-current-VD-always-added.patch # KDE-bug 452171 - "${FILESDIR}"/${P}-dont-use-xcb-in-wayland.patch # KDE-bug 450564 - "${FILESDIR}"/${P}-fix-unlocking-wayland-sessions.patch # KDE-bug 447705 -) - -src_prepare() { - ecm_src_prepare - use multimedia || eapply "${FILESDIR}/${PN}-5.21.80-gstreamer-optional.patch" - - # TODO: try to get a build switch upstreamed - if ! use screencast; then - sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die - fi -} - -src_configure() { - local mycmakeargs=( - $(cmake_use_find_package accessibility QAccessibilityClient) - $(cmake_use_find_package caps Libcap) - $(cmake_use_find_package plasma KF5Runner) - ) - - ecm_src_configure -} - -pkg_postinst() { - ecm_pkg_postinst - optfeature "color management support" x11-misc/colord - elog - elog "In Plasma 5.20, default behavior of the Task Switcher to move minimised" - elog "windows to the end of the list was changed so that it remains in the" - elog "original order. To revert to the well established behavior:" - elog - elog " - Edit ~/.config/kwinrc" - elog " - Find [TabBox] section" - elog " - Add \"MoveMinimizedWindowsToEndOfTabBoxFocusChain=true\"" -} |