summaryrefslogtreecommitdiff
path: root/kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-04-06 22:33:41 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-04-06 22:33:41 +0100
commite68d405c5d712af4387159df07e226217bdda049 (patch)
tree009ab0f3d427f0813e62930d71802cb054c07e30 /kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch
parent401101f9c8077911929d3f2b60a37098460a5d89 (diff)
gentoo resync : 06.04.2022
Diffstat (limited to 'kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch')
-rw-r--r--kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch b/kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch
new file mode 100644
index 000000000000..b0f5b947dfcd
--- /dev/null
+++ b/kde-frameworks/kcmutils/files/kcmutils-5.92.0-KDEBUG-444378.patch
@@ -0,0 +1,52 @@
+From c9c58de65c07c8a940cb4c9b91777450698f635c Mon Sep 17 00:00:00 2001
+From: Alexander Lohnau <alexander.lohnau@gmx.de>
+Date: Sun, 6 Mar 2022 21:31:51 +0100
+Subject: [PATCH] Fix KPluginSelector KCMs missing their metadata on plugin
+ loading
+
+For the KWin KCMs we need the full metadata, because we read the
+plugin keyword.
+
+Without the X-KDE-ConfigModule key, plugins used to create a symlink
+in the kservices5 folder to their metadata, which then goes through the
+legacy code path we would read all the metadata.
+This includes the plugin keyword.
+
+When consumers would this key, but have an old KWin version which
+used the KPluginSelector class and a kcmutils version which reads X-KDE-ConfigModule, but does not
+include this bugfix, the plugin keyword will be empty and thus the config
+files can not be located.
+
+This makes it hard to fix the loading on kcmutils < 5.91, but keeping the
+code working with KWin < 5.24.
+
+To test this, you should check out KWin 5.23 and kcmutils master.
+Fox example https://github.com/nclarius/tile-gaps/ will then fail
+to load it's config. With this change included, it should load properly.
+
+BUG: 444378
+---
+ src/kpluginselector.cpp | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
+index d5248d3..1f4c651 100644
+--- a/src/kpluginselector.cpp
++++ b/src/kpluginselector.cpp
+@@ -969,10 +969,9 @@ void KPluginSelector::Private::PluginDelegate::configure(const QModelIndex &inde
+ const QString pluginId = configModule.mid(idx + 1);
+ metaDataList = {KPluginMetaData::findPluginById(pluginNamespace, pluginId)}; // Clear the list to avoid old desktop files to appear twice
+ } else {
+- // the KCMs don't need any metadata themselves, just set the name to make sure the KPluginMetaData object
+- // is valid & the internal usage has the data it needs
+- QJsonObject kplugin({{QLatin1String("Name"), pluginInfo.name()}});
+- KPluginMetaData data(QJsonObject{{QLatin1String("KPlugin"), kplugin}}, absoluteKCMPath);
++ // the KCMs don't need any metadata themselves, just use the one from the KPluginInfo object
++ // this way for example a KPackage plugin can specify plugin keyword
++ KPluginMetaData data(pluginInfo.toMetaData().rawData(), absoluteKCMPath);
+ metaDataList = {data}; // Clear the list to avoid old desktop files to appear twice
+ }
+ }
+--
+GitLab
+