diff options
Diffstat (limited to 'kde-plasma/plasma-workspace')
12 files changed, 550 insertions, 13 deletions
diff --git a/kde-plasma/plasma-workspace/Manifest b/kde-plasma/plasma-workspace/Manifest index 730b72807a51..0bf0386b17ef 100644 --- a/kde-plasma/plasma-workspace/Manifest +++ b/kde-plasma/plasma-workspace/Manifest @@ -2,8 +2,17 @@ AUX 10-agent-shutdown.sh 398 BLAKE2B f6c06021040aee856421ba536b96b81f119153f099c AUX 10-agent-startup.sh 2139 BLAKE2B 7ea9ee0e6d949eecbdfbc41bd0286919094b6d6837e4c7a6ba1a8d223e890ca2287f9c842019e04ead5015840d6d2f9b9d89320a7b0f6c20197b1d90d56506b4 SHA512 718feed12544deb1750730bebf1d618cbccdec9a4815a28b9f17278fdc9c21466b098778b9a20785625b99b5eb930049a84a67a0c033b684610ec8eb5b5ec678 AUX plasma-workspace-5.21.5-split-libkworkspace.patch 1154 BLAKE2B d37f649971b95c3fd99c551ec7512054460d8ba04c265e56c2ee53d968c7885929724c81df2895eeae8609a5a0a4c28839461429579f56bcbde4dcaa5646e15b SHA512 c41d2c56170914a309c9765a58a6cccaf4a9afae937ce762387590f3b2ccf59969b5873f702986369c4c3118c74d314f8b68916bfabce5e7379b3cb27daebb50 AUX plasma-workspace-5.22.5-krunner-cwd-at-home.patch 804 BLAKE2B 4bb337ea04037f8992988b70a40896166a2e10b2b557fa5518e3c2bd7129a221fe2efe064465cbffcc3db4abebb13d354599f44884eaf8c1bc029646280921bb SHA512 e49635bbb42c1beeaa9eee6a803f8c96497bc6e768a72d93886281edec922cb641a373fc0a1a482cedb36bd1f400f77b0030247f621373ebc141760a97ef5bbd -DIST plasma-workspace-5.24.4.tar.xz 18488324 BLAKE2B 140540a95360bc1c9ce1940ca03267bfe8c5d59a378b09a5c2abfed9ad8f8af89558c616465363f27a42a730025c081092f00dd0eb776cb7ee53a0aeff1b3881 SHA512 6c917d3ea307bca85e6ca12294357410c3442a9115a4864311df87af29919c20d8dab768f470379bbc4e0510367319a6cf8ce045ab7254db06e8c29477370d89 +AUX plasma-workspace-5.24.5-applets-appmenu-fix-top-level-menu-text-coloration.patch 1717 BLAKE2B 0d19a2749707db12168be8b2c34d09609743a81e61fa0b45ee0548fcff6c0c37a2db0748907d4944398e9ffcafa726fc93498d80095e41d55ea1e384a6daada3 SHA512 4417c92db33848442f7b68c4bc89d98adc8b07ac8fb2384e087e5cabe7177bc95dc7c9a81d4f750b8e62b2be9ec6878b95fcd2796eaee4a761577c694336fb6b +AUX plasma-workspace-5.24.5-applets-kicker-refresh-RootModel-on-session-backend.patch 3747 BLAKE2B 294f577cf564223e81229057ad7b6dc6f9ff75c30fb170f1df5e419f21c2f4436b48f29b2583f86d27de1f85ebb935dea8515727babc886aa5ea7cc361ba8018 SHA512 38b7b1e6d89b55dcfb120d705dccc66046e647f42fa508c94aa2e21fc93fdbc119f947b755f97b1624e3e236cdac187e65919031a91a05776c630312281d23a2 +AUX plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch 5841 BLAKE2B d2829bea5c94e9c67cb01a99b385e06252955a1f58358b0b44302ac1408a61ca79f13bc6519d2c45ed3f31bf5d9f94af5047c6626b092d57b14302d79779fe35 SHA512 aae1095b744a1d1110eaa88336927cb1ba16cef18b18704662d795053fd17e978db373de15e0722668c45ccf9b72392627ae62bcc1ffe7f3fb55cb71ea3903b4 +AUX plasma-workspace-5.24.5-fix-plasmashell-crash-on-panel-w-systray-remove.patch 1059 BLAKE2B 499e6706c5b1ea90032da1f861b07518de9db402fda5191df52050a7285e73b4a5f63fc84da2a6dbd97905eebc325e088285d2d3aabcef4726eeee85d042fbd0 SHA512 49dc9710211cfcedb5cbc973ae90b0c21d4bea9055f5faa357d59bcf87c141e4c30cb4c7a52b363727d40ae58a594751ca6d58a1d8260ef28936953803157f5c +AUX plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-1.patch 1605 BLAKE2B 59036bc5d7f331e3fa6f2d9a5894de68097a1b3490fb2711e0f5d98172f7208082947f311d844c5204e931ed3dd37a4995a41669f6f7d5d5748dbeaebb8681bb SHA512 743d35f9a9966607a3e9f0de3d3a52f9034b7c879e485eb917c29cd0d33ea8f5146cc7dfb14e11cecc4f2fe50989a28c419179c32176baffa326d968c37e0d89 +AUX plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-2.patch 2366 BLAKE2B c14bfdd37480b6e501990daa77b0cafb8ed09ad63d96ce08be34c9c2f6dd08442195a566549eefbdbc69f8065c4221ed94b5cd0f12e25f479a8b82d2d08162e5 SHA512 83307de2dd31b3393e0d12f3204427c1f0c4a87bd2d69554e7fb7fd773a34ec71dc8d28055ceaae52d85bb9b04bf8f84b4c8c0f16ca1d775073c722cc0aeca6a +AUX plasma-workspace-5.24.5-sddm-theme-KeyboardButton-fix-layout-name.patch 1544 BLAKE2B 8f27cb884f5780a8714f376ccdfee67623b1c71fb6f14f8ec0d58f050bd652cd7de54e459edd0f5072aa818bd5fa946f4251e464cdd48e3b2dc2fddc408511b6 SHA512 e85a3504250f79c439590303d542842da71cdbc8cb72fd4a9b010b11cc2bedd282c5debf40cbf0afdbec9545e4ce1c99842e17669386f97b0844dc77d57f4c15 +AUX plasma-workspace-5.24.5-wallpapers-image-fix-missing-folder-action-buttons.patch 1404 BLAKE2B 356c4f481c899c4f7e313f68496c65936eb693c9ec40e893fc02958c9446b06a914370d52b5c5f4c2e45901fb375ff7b1dc79a1505f43ee43c022728be005563 SHA512 3ad0e83b7f236da90694919cd9978d64ceb1c934f8e293a646907c58c6756bcb9d300c806647e907ea36a74a7ab77e223d9b420ba74db6664910fedf8c744232 +AUX plasma-workspace-5.24.80-split-libkworkspace.patch 1175 BLAKE2B 74dabcc26da223fb46bd97c2d07b5913ad51ab85a20062835dbb80b2a555129029996f99129ea9d99af76399722a404cf9baabbea48de4ab4392f068539f3c9f SHA512 95a63a106242449cdf605f943e794e07834b5d1e8fff2ad4e6a025fd68cc20fc6725ec0f0389898c4fe8c87587c7a51381b343cf116b2ff812236f0fe95ed314 DIST plasma-workspace-5.24.5.tar.xz 18490588 BLAKE2B 5a9681620f40604f631cd7ef0c9d6256cc490436dc5e29ef9434d0f129324c2d405c5647da12778c208976c0cb0b4da698a90a22b70c1cb2723cbc58f69bda1d SHA512 ae40fe545b03e42e9f8fe2e8885d3853f4b52d4fd2ed3ecf7d24fa59b4924b8f8b389e8713ec6a3a875bc66df3952de9157d4a5631b283105a9329a1a1825996 -EBUILD plasma-workspace-5.24.4.ebuild 6490 BLAKE2B 5445697f4d3ecbc61f7714f4d7a03d7a410a1d36a2c34d0c4f9fbdfdcb861d039294557ecd7c8a91aeb6dce9ffdb931315beb4db52968af3f9868415c76e7632 SHA512 c22495611f87e8bae924b96f28df05c282352e8c303b46def1a7514b106da5b09f617ba6c8a3c4b985ad51083952d912f438bca1003a1b4f96e775e927cc4265 -EBUILD plasma-workspace-5.24.5.ebuild 6493 BLAKE2B 8bcb71ec895c5736aa743a13e17765632ec30f2a47e461ffb5d9bb83d2ff7c319962e97110299613c2ab8b7525ddbee172d316b7fad5e6e75aa45e4d8b0ef896 SHA512 a8eb9bff20073f628f7fbacc2db84181921d60ff13bfe7ec2c1c6fa7d36a14005f8801a9fc82cbf131a30c5ccbed0231d4ef9639ae18a8ba3ea79c7e67df448d +DIST plasma-workspace-5.25.2.tar.xz 18581236 BLAKE2B 0c510d012c65a5472759a7eca8a16c53ba0dce57c7c513018adf77e6da6192b99759d47edb0c23057c0909a5854c26c7efce5c382adb4b2894fdf558534a95ff SHA512 5554b01919439791e991aca51446ed94438d499712f2766eb15389c057b7d9cb0c052a250f9aa432a8b2eb0b9802e51755a2cf6fc0998d3ad0a48138c70bc105 +EBUILD plasma-workspace-5.24.5-r1.ebuild 7100 BLAKE2B 9de41f9fa22bc2e66757a88e070be31d2e6b7b19c248ea5f4696e1bcc7b1bf78da4d9f7ed4de2397ef273aad77bb4e9925e8afa90a1cf1b2872d3c2ccf9c5daf SHA512 d43471c2412fea78398c24a916f6d23ed9ecd7e5ce80263e5f2e09678af97b3e63acb7b662051c60e6744e7abeb332d8e6a87581e1bc20b36941dce937d98bda +EBUILD plasma-workspace-5.25.2.ebuild 6517 BLAKE2B 2cdd5e5aa5eb9756def920c8336cc362104497e8a21802a0edbfbd4e9c00de7b94a9142502e02dad6c7dab2163dd1d64675c73171f56f021b4bf6d8cb7ceccd9 SHA512 fb467d7f0298fe6361fae6bf056a8acdd1a693af45795e9f7ab2c645acb002532952b8aa6a85370c8498dd0b27b377d34137903cecb559daf84e99169f96c8a0 MISC metadata.xml 822 BLAKE2B 653f8e3e3987d950746b0a5f423664302f1a59feefcf3704a6d89000748134ee26cb88262ef2fb1e6d79213b1d82c16ac4d8bcaa09a40bef987d7dc7d8a5c82c SHA512 638282cdb40c2386d56f8b20434ffd78a610e8bd4ce5212118d398ba482799de27b7eae3e7874099362e8b841da96c6c819d6e5e52f6ba97679f153425cbe55b diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-appmenu-fix-top-level-menu-text-coloration.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-appmenu-fix-top-level-menu-text-coloration.patch new file mode 100644 index 000000000000..d61877300d27 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-appmenu-fix-top-level-menu-text-coloration.patch @@ -0,0 +1,40 @@ +From 4d3f99558cff95259590e70dfbf854a479f772ce Mon Sep 17 00:00:00 2001 +From: Nate Graham <nate@kde.org> +Date: Wed, 4 May 2022 10:45:52 -0600 +Subject: [PATCH 2/8] applets/appmenu: fix top-level menu text coloration + +28537cf3ff3cd9210f7568f40334ac3a2c9bed18 made the color dynamic, but +neglected to respect the Plasma color scheme, if any. This causes +problems with Plasma themes that have their own colors and don't +respect the systemwide color scheme, such as Breeze Twilight. + +Fix it by using the appropriate colors from the PlasmaCore color scheme +object, not the systemwide object provided by Qt. + +BUG: 453348 +FIXED-IN: 5.24.6 + + +(cherry picked from commit 19d9bc7e395d8c6e007afdc3b3b5c11a7d02190e) +--- + applets/appmenu/package/contents/ui/MenuDelegate.qml | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/applets/appmenu/package/contents/ui/MenuDelegate.qml b/applets/appmenu/package/contents/ui/MenuDelegate.qml +index 441e99016..afb37589a 100644 +--- a/applets/appmenu/package/contents/ui/MenuDelegate.qml ++++ b/applets/appmenu/package/contents/ui/MenuDelegate.qml +@@ -66,9 +66,6 @@ AbstractButton { + + contentItem: PC3.Label { + text: controlRoot.Kirigami.MnemonicData.richTextLabel +- // Kirigami.Theme.highlightedTextColor returns different colors +- // depending on window focus, which does not apply to this applet +- // instead, we use palette.highlightedText here, which returns consistent result +- color: background.state == MenuDelegate.State.Rest ? palette.windowText : palette.highlightedText ++ color: background.state == MenuDelegate.State.Rest ? PlasmaCore.Theme.textColor : PlasmaCore.Theme.highlightedTextColor + } + } +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-kicker-refresh-RootModel-on-session-backend.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-kicker-refresh-RootModel-on-session-backend.patch new file mode 100644 index 000000000000..8cffd8d372ed --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-kicker-refresh-RootModel-on-session-backend.patch @@ -0,0 +1,92 @@ +From d0340868619c26de5892f8bd095456dc5a32d0ce Mon Sep 17 00:00:00 2001 +From: Amy Rose <amy@fluff.tech> +Date: Tue, 17 May 2022 07:38:03 +0000 +Subject: [PATCH 8/8] applets/kicker: refresh RootModel on session backend + state change + +BUG: 427530 + +Hunting this one down since mid-March... + +In "native" Plasma containments like the panel, desktop, and plasmawindowed, the `LogindSessionBackend` in `libkworkspace` enters the "Ready" state nearly instantly, before any signals can even be attached. In other containments like Latte Dock and plasmoidviewer, however, the initialization takes some time to complete (unsure why). RootModel was not watching or waiting to check what the session backend's state was, resulting in validity checks being done too soon and never checked again. + + +(cherry picked from commit 2cc819f39bcce9ca83ab3767c42beb1e500e55b1) +--- + applets/kicker/plugin/rootmodel.cpp | 1 + + applets/kicker/plugin/systementry.cpp | 1 + + applets/kicker/plugin/systementry.h | 1 + + applets/kicker/plugin/systemmodel.cpp | 2 ++ + applets/kicker/plugin/systemmodel.h | 3 +++ + 5 files changed, 8 insertions(+) + +diff --git a/applets/kicker/plugin/rootmodel.cpp b/applets/kicker/plugin/rootmodel.cpp +index 4ec323683..837108744 100644 +--- a/applets/kicker/plugin/rootmodel.cpp ++++ b/applets/kicker/plugin/rootmodel.cpp +@@ -449,6 +449,7 @@ void RootModel::refresh() + } + + m_systemModel = new SystemModel(this); ++ QObject::connect(m_systemModel, &SystemModel::sessionManagementStateChanged, this, &RootModel::refresh); + + if (m_showPowerSession) { + m_entryList << new GroupEntry(this, i18n("Power / Session"), QStringLiteral("system-log-out"), m_systemModel); +diff --git a/applets/kicker/plugin/systementry.cpp b/applets/kicker/plugin/systementry.cpp +index fdd86ece3..939e2119e 100644 +--- a/applets/kicker/plugin/systementry.cpp ++++ b/applets/kicker/plugin/systementry.cpp +@@ -79,6 +79,7 @@ void SystemEntry::refresh() + { + if (!s_sessionManagement) { + s_sessionManagement = new SessionManagement(); ++ QObject::connect(s_sessionManagement, &SessionManagement::stateChanged, this, &SystemEntry::sessionManagementStateChanged); + } + + bool valid = false; +diff --git a/applets/kicker/plugin/systementry.h b/applets/kicker/plugin/systementry.h +index a0a258024..981a3a5f5 100644 +--- a/applets/kicker/plugin/systementry.h ++++ b/applets/kicker/plugin/systementry.h +@@ -54,6 +54,7 @@ public: + + Q_SIGNALS: + void isValidChanged() const; ++ void sessionManagementStateChanged(); + + private Q_SLOTS: + void refresh(); +diff --git a/applets/kicker/plugin/systemmodel.cpp b/applets/kicker/plugin/systemmodel.cpp +index 656bbdc4e..844f80d09 100644 +--- a/applets/kicker/plugin/systemmodel.cpp ++++ b/applets/kicker/plugin/systemmodel.cpp +@@ -92,10 +92,12 @@ void SystemModel::populate() + + auto addIfValid = [=](const SystemEntry::Action action) { + SystemEntry *entry = new SystemEntry(this, action); ++ QObject::connect(entry, &SystemEntry::sessionManagementStateChanged, this, &SystemModel::sessionManagementStateChanged); + + if (entry->isValid()) { + m_entries << entry; + } ++ + QObject::connect(entry, &SystemEntry::isValidChanged, this, &AbstractModel::refresh, Qt::UniqueConnection); + }; + +diff --git a/applets/kicker/plugin/systemmodel.h b/applets/kicker/plugin/systemmodel.h +index cd9048de1..29ae9e428 100644 +--- a/applets/kicker/plugin/systemmodel.h ++++ b/applets/kicker/plugin/systemmodel.h +@@ -25,6 +25,9 @@ public: + + Q_INVOKABLE bool trigger(int row, const QString &actionId, const QVariant &argument) override; + ++Q_SIGNALS: ++ void sessionManagementStateChanged(); ++ + protected Q_SLOTS: + void refresh() override; + +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch new file mode 100644 index 000000000000..0ac8ed788ade --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch @@ -0,0 +1,137 @@ +From ea2833e4dd7114f8bf22a322a26c6c05ebf767f2 Mon Sep 17 00:00:00 2001 +From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> +Date: Mon, 25 Apr 2022 21:58:58 +0300 +Subject: [PATCH 3/8] applets/systemtray: Prefer IconName over IconPixmap + +In case both IconName and IconPixmap are provided, the system tray +applet is going to prefer the pixmap. + +That can create a dark icon on dark background bug because plasma can't +recolor pixmaps. + +The SNI spec recommends visualizations to prefer icons over pixmaps: + +> An icon can either be identified by its Freedesktop-compliant icon +> name, carried by this property of by the icon data itself, carried by +> the property IconPixmap. Visualizations are encouraged to prefer icon +> names over icon pixmaps if both are available (FIXME: still not very +> defined: could e the pixmap used as fallback if an icon name is not found?) + +BUG: 418996 + +- Unset iconName when icon can't be loaded +- no code duplication +(cherry picked from commit 7363d0e0f3c1a447e6264e92762735bd33da2682) +--- + .../systemtray/statusnotifieritemsource.cpp | 82 ++++++++----------- + 1 file changed, 33 insertions(+), 49 deletions(-) + +diff --git a/applets/systemtray/statusnotifieritemsource.cpp b/applets/systemtray/statusnotifieritemsource.cpp +index f67845e42..731aecadc 100644 +--- a/applets/systemtray/statusnotifieritemsource.cpp ++++ b/applets/systemtray/statusnotifieritemsource.cpp +@@ -286,68 +286,52 @@ void StatusNotifierItemSource::refreshCallback(QDBusPendingCallWatcher *call) + QIcon overlay; + QStringList overlayNames; + +- // Icon ++ // Overlay icon + { +- KDbusImageVector image; +- QIcon icon; +- QString iconName; +- +- properties[QStringLiteral("OverlayIconPixmap")].value<QDBusArgument>() >> image; +- if (image.isEmpty()) { +- QString iconName = properties[QStringLiteral("OverlayIconName")].toString(); +- m_overlayIconName = iconName; +- if (!iconName.isEmpty()) { ++ m_overlayIconName = QString(); ++ ++ const QString iconName = properties[QStringLiteral("OverlayIconName")].toString(); ++ if (!iconName.isEmpty()) { ++ overlay = QIcon(new KIconEngine(iconName, iconLoader())); ++ if (!overlay.isNull()) { ++ m_overlayIconName = iconName; + overlayNames << iconName; +- overlay = QIcon(new KIconEngine(iconName, iconLoader())); + } +- } else { +- overlay = imageVectorToPixmap(image); + } ++ if (overlay.isNull()) { ++ KDbusImageVector image; ++ properties[QStringLiteral("OverlayIconPixmap")].value<QDBusArgument>() >> image; ++ if (!image.isEmpty()) { ++ overlay = imageVectorToPixmap(image); ++ } ++ } ++ } + +- properties[QStringLiteral("IconPixmap")].value<QDBusArgument>() >> image; +- if (image.isEmpty()) { +- iconName = properties[QStringLiteral("IconName")].toString(); +- if (!iconName.isEmpty()) { +- icon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames)); +- +- if (overlayNames.isEmpty() && !overlay.isNull()) { ++ auto loadIcon = [this, &properties, &overlay, &overlayNames](const QString &iconKey, const QString &pixmapKey) -> std::tuple<QIcon, QString> { ++ const QString iconName = properties[iconKey].toString(); ++ if (!iconName.isEmpty()) { ++ QIcon icon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames)); ++ if (!icon.isNull()) { ++ if (!overlay.isNull() && overlayNames.isEmpty()) { + overlayIcon(&icon, &overlay); + } ++ return {icon, iconName}; + } +- } else { +- icon = imageVectorToPixmap(image); ++ } ++ KDbusImageVector image; ++ properties[pixmapKey].value<QDBusArgument>() >> image; ++ if (!image.isEmpty()) { ++ QIcon icon = imageVectorToPixmap(image); + if (!icon.isNull() && !overlay.isNull()) { + overlayIcon(&icon, &overlay); + } ++ return {icon, QString()}; + } +- m_icon = icon; +- m_iconName = iconName; +- } ++ return {}; ++ }; + +- // Attention icon +- { +- KDbusImageVector image; +- QIcon attentionIcon; +- +- properties[QStringLiteral("AttentionIconPixmap")].value<QDBusArgument>() >> image; +- if (image.isEmpty()) { +- QString iconName = properties[QStringLiteral("AttentionIconName")].toString(); +- m_attentionIconName = iconName; +- if (!iconName.isEmpty()) { +- attentionIcon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames)); +- +- if (overlayNames.isEmpty() && !overlay.isNull()) { +- overlayIcon(&attentionIcon, &overlay); +- } +- } +- } else { +- attentionIcon = imageVectorToPixmap(image); +- if (!attentionIcon.isNull() && !overlay.isNull()) { +- overlayIcon(&attentionIcon, &overlay); +- } +- } +- m_attentionIcon = attentionIcon; +- } ++ std::tie(m_icon, m_iconName) = loadIcon(QStringLiteral("IconName"), QStringLiteral("IconPixmap")); ++ std::tie(m_attentionIcon, m_attentionIconName) = loadIcon(QStringLiteral("AttentionIconName"), QStringLiteral("AttentionIconPixmap")); + + // ToolTip + { +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-fix-plasmashell-crash-on-panel-w-systray-remove.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-fix-plasmashell-crash-on-panel-w-systray-remove.patch new file mode 100644 index 000000000000..609ab0f011cd --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-fix-plasmashell-crash-on-panel-w-systray-remove.patch @@ -0,0 +1,34 @@ +From 7795e5fb4f7e2a79e15a9e5711149f71144e73c9 Mon Sep 17 00:00:00 2001 +From: Fushan Wen <qydwhotmail@gmail.com> +Date: Fri, 13 May 2022 14:43:44 +0800 +Subject: [PATCH 5/8] applets/systemtray: disconnect KConfigLoader signal when + instance is about to be deleted + +When an applet is about to be deleted, it will save its config +automatically, but in this case the system tray doesn't need to load the +config again. + +BUG: 453726 + + +(cherry picked from commit 6da91d053b4f142277d60db4a1a17eded9249d11) +--- + applets/systemtray/systemtray.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/applets/systemtray/systemtray.cpp b/applets/systemtray/systemtray.cpp +index 3b7f688a6..0d889b3f0 100644 +--- a/applets/systemtray/systemtray.cpp ++++ b/applets/systemtray/systemtray.cpp +@@ -40,6 +40,8 @@ SystemTray::SystemTray(QObject *parent, const KPluginMetaData &data, const QVari + + SystemTray::~SystemTray() + { ++ // When the applet is about to be deleted, delete now to avoid calling loadConfig() ++ delete m_settings; + } + + void SystemTray::init() +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-1.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-1.patch new file mode 100644 index 000000000000..57477173acbb --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-1.patch @@ -0,0 +1,41 @@ +From 1a966d3fb979cf0f0080c805aed248ee77978800 Mon Sep 17 00:00:00 2001 +From: Fushan Wen <qydwhotmail@gmail.com> +Date: Mon, 16 May 2022 16:18:00 +0800 +Subject: [PATCH 6/8] kcms/desktoptheme: find metadata.json when loading + ThemesModel + +Before this commit ThemesModel only finds metadata.desktop, but after +KF5.94, the default theme metadata files have been ported to json format. + +BUG: 453830 + + +(cherry picked from commit 10aa9bb8dca91e92e3009ed57613d43d610da63e) +--- + kcms/desktoptheme/themesmodel.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/kcms/desktoptheme/themesmodel.cpp b/kcms/desktoptheme/themesmodel.cpp +index 6f0ecf4e3..296951742 100644 +--- a/kcms/desktoptheme/themesmodel.cpp ++++ b/kcms/desktoptheme/themesmodel.cpp +@@ -155,7 +155,15 @@ void ThemesModel::load() + const QDir cd(ppath); + const QStringList &entries = cd.entryList(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot); + for (const QString &pack : entries) { +- const QString _metadata = ppath + QLatin1Char('/') + pack + QStringLiteral("/metadata.desktop"); ++ const QString prefix = QStringLiteral("%1%2%3%4metadata.").arg(ppath, QDir::separator(), pack, QDir::separator()); ++ ++ QString _metadata = QStringLiteral("%1json").arg(prefix); ++ if (QFile::exists(_metadata)) { ++ themes << _metadata; ++ continue; ++ } ++ ++ _metadata = QStringLiteral("%1desktop").arg(prefix); + if (QFile::exists(_metadata)) { + themes << _metadata; + } +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-2.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-2.patch new file mode 100644 index 000000000000..2a379c707efe --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-kcms-desktoptheme-detect-installed-styles-2.patch @@ -0,0 +1,72 @@ +From c602c52578da1331d2466ff9803c7e0b9287c24c Mon Sep 17 00:00:00 2001 +From: Alexander Lohnau <alexander.lohnau@gmx.de> +Date: Mon, 16 May 2022 14:49:46 +0200 +Subject: [PATCH 7/8] kcms/desktoptheme: Fix reading of metadata in ThemesModel + +We can not use KConfig to read the desktop file. + +CCBUG: 453830 + + +(cherry picked from commit 43ae993da35bb408b4fabb5c4514feff97628e0d) +--- + kcms/desktoptheme/themesmodel.cpp | 27 +++++++++++++++++++-------- + 1 file changed, 19 insertions(+), 8 deletions(-) + +diff --git a/kcms/desktoptheme/themesmodel.cpp b/kcms/desktoptheme/themesmodel.cpp +index 296951742..ce3cac14b 100644 +--- a/kcms/desktoptheme/themesmodel.cpp ++++ b/kcms/desktoptheme/themesmodel.cpp +@@ -16,6 +16,7 @@ + + #include <KColorScheme> + #include <KDesktopFile> ++#include <KPluginMetaData> + + #include <KConfigGroup> + #include <KSharedConfig> +@@ -176,15 +177,25 @@ void ThemesModel::load() + int themeNameSepIndex = themeRoot.lastIndexOf(QLatin1Char('/'), -1); + const QString packageName = themeRoot.right(themeRoot.length() - themeNameSepIndex - 1); + +- KDesktopFile df(theme); ++ QString name; ++ QString comment; + +- if (df.noDisplay()) { +- continue; +- } ++ if (theme.endsWith(QLatin1String(".json"))) { ++ KPluginMetaData data = KPluginMetaData::fromJsonFile(theme); ++ name = data.name(); ++ comment = data.description(); ++ } else { ++ KDesktopFile df(theme); + +- QString name = df.readName(); +- if (name.isEmpty()) { +- name = packageName; ++ if (df.noDisplay()) { ++ continue; ++ } ++ ++ name = df.readName(); ++ if (name.isEmpty()) { ++ name = packageName; ++ } ++ comment = df.readComment(); + } + const bool isLocal = QFileInfo(theme).isWritable(); + bool hasPluginName = std::any_of(m_data.begin(), m_data.end(), [&](const ThemesModelData &item) { +@@ -205,7 +216,7 @@ void ThemesModel::load() + type = LightTheme; + } + } +- ThemesModelData item{name, packageName, df.readComment(), type, isLocal, false}; ++ ThemesModelData item{name, packageName, comment, type, isLocal, false}; + m_data.append(item); + } + } +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-sddm-theme-KeyboardButton-fix-layout-name.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-sddm-theme-KeyboardButton-fix-layout-name.patch new file mode 100644 index 000000000000..594efe7df172 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-sddm-theme-KeyboardButton-fix-layout-name.patch @@ -0,0 +1,39 @@ +From e2b631d43528c3e41d53c8a359b6129c616bc271 Mon Sep 17 00:00:00 2001 +From: ivan tkachenko <me@ratijas.tk> +Date: Sat, 30 Apr 2022 03:20:11 +0300 +Subject: [PATCH 1/8] [sddm-theme] KeyboardButton: Fix layout name not being + shown + +It used to cause an error like this: + + [03:21:31.246] (WW) GREETER: file:///usr/share/sddm/themes/breeze/KeyboardButton.qml:19: TypeError: Cannot read property 'shortName' of null + +(cherry picked from commit 2e9020ca6c1d55842a4b014623f0d88697972000) +--- + sddm-theme/KeyboardButton.qml | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/sddm-theme/KeyboardButton.qml b/sddm-theme/KeyboardButton.qml +index d5d5a446c..712096d87 100644 +--- a/sddm-theme/KeyboardButton.qml ++++ b/sddm-theme/KeyboardButton.qml +@@ -10,7 +10,7 @@ PlasmaComponents.ToolButton { + + property int currentIndex: -1 + +- text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Keyboard Layout: %1", instantiator.objectAt(currentIndex).shortName) ++ text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Keyboard Layout: %1", keyboard.layouts[currentIndex].shortName) + implicitWidth: minimumWidth + + visible: menu.items.length > 1 +@@ -27,7 +27,6 @@ PlasmaComponents.ToolButton { + onObjectRemoved: keyboardMenu.removeItem( object ) + delegate: QQC.MenuItem { + text: modelData.longName +- property string shortName: modelData.shortName + onTriggered: { + keyboard.currentLayout = model.index + } +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-wallpapers-image-fix-missing-folder-action-buttons.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-wallpapers-image-fix-missing-folder-action-buttons.patch new file mode 100644 index 000000000000..d09b60ce6ce4 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-wallpapers-image-fix-missing-folder-action-buttons.patch @@ -0,0 +1,30 @@ +From dd8f1b5e302717c84f6a05af36c621122ead6d99 Mon Sep 17 00:00:00 2001 +From: Fushan Wen <qydwhotmail@gmail.com> +Date: Fri, 6 May 2022 21:36:09 +0800 +Subject: [PATCH 4/8] wallpapers/image: Fix missing folder action buttons + +The width of the action area needs to be substracted in contentItem's +width. + +Also use `Kirigami.Units.gridUnit * 4` because `overlayWidth` was +introduced in Frameworks 5.94, and people using Plasma 5.24 may have an +older Frameworks version. +--- + wallpapers/image/imagepackage/contents/ui/config.qml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/wallpapers/image/imagepackage/contents/ui/config.qml b/wallpapers/image/imagepackage/contents/ui/config.qml +index 97f9f81a5..7bb675f23 100644 +--- a/wallpapers/image/imagepackage/contents/ui/config.qml ++++ b/wallpapers/image/imagepackage/contents/ui/config.qml +@@ -331,6 +331,7 @@ ColumnLayout { + // Don't need a highlight or hover effects + hoverEnabled: false + contentItem: Kirigami.BasicListItem { ++ width: slidePathsView.width - (parent.hasOwnProperty("overlayWidth") ? overlayWidth : Kirigami.Units.gridUnit * 4) + // Don't need a highlight or hover effects + hoverEnabled: false + separatorVisible: false +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.80-split-libkworkspace.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.80-split-libkworkspace.patch new file mode 100644 index 000000000000..e605473e3546 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.80-split-libkworkspace.patch @@ -0,0 +1,37 @@ +From 19bbdcf391ea51c4798c770e87c7eada24f252b8 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Mon, 21 Feb 2022 12:24:56 +0100 +Subject: [PATCH] libkworkspace: Allow standalone build + +Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3ec5f0893..b022a20b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -78,6 +78,7 @@ set_package_properties(Qalculate PROPERTIES DESCRIPTION "Qalculate Library" + ) + + find_package(KWinDBusInterface CONFIG REQUIRED) ++find_package(LibKWorkspace 5.21.5) + + find_package(KF5Screen CONFIG REQUIRED) + find_package(KScreenLocker 5.13.80 REQUIRED) +@@ -233,7 +234,10 @@ option(PLASMA_WAYLAND_DEFAULT_SESSION "Use Wayland session by default for Plasma + if(KF5DocTools_FOUND) + add_subdirectory(doc) + endif() +-add_subdirectory(libkworkspace) ++if(NOT LibKWorkspace_FOUND) ++ message(STATUS "System LibKWorkspace not found, using bundled.") ++ add_subdirectory(libkworkspace) ++endif() + add_subdirectory(libdbusmenuqt) + add_subdirectory(appmenu) + +-- +2.35.1 + diff --git a/kde-plasma/plasma-workspace/plasma-workspace-5.24.5.ebuild b/kde-plasma/plasma-workspace/plasma-workspace-5.24.5-r1.ebuild index 4a64d1146f77..ff25b6a845ef 100644 --- a/kde-plasma/plasma-workspace/plasma-workspace-5.24.5.ebuild +++ b/kde-plasma/plasma-workspace/plasma-workspace-5.24.5-r1.ebuild @@ -15,7 +15,7 @@ DESCRIPTION="KDE Plasma workspace" LICENSE="GPL-2" # TODO: CHECK SLOT="5" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86" IUSE="appstream +calendar +fontconfig geolocation gps +policykit screencast +semantic-desktop telemetry" @@ -152,8 +152,15 @@ BDEPEND=" PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5" PATCHES=( - "${FILESDIR}/${PN}-5.21.5-split-libkworkspace.patch" # downstream - "${FILESDIR}/${PN}-5.22.5-krunner-cwd-at-home.patch" # TODO upstream: KDE-bug 432975, bug 767478 + "${FILESDIR}"/${PN}-5.21.5-split-libkworkspace.patch # downstream + "${FILESDIR}"/${PN}-5.22.5-krunner-cwd-at-home.patch # TODO upstream: KDE-bug 432975, bug 767478 + "${FILESDIR}"/${P}-sddm-theme-KeyboardButton-fix-layout-name.patch + "${FILESDIR}"/${P}-applets-appmenu-fix-top-level-menu-text-coloration.patch # KDE-bug 453348 + "${FILESDIR}"/${P}-applets-systemtray-prefer-IconName-over-IconPixmap.patch # KDE-bug 418996 + "${FILESDIR}"/${P}-wallpapers-image-fix-missing-folder-action-buttons.patch + "${FILESDIR}"/${P}-fix-plasmashell-crash-on-panel-w-systray-remove.patch # KDE-bug 453726 + "${FILESDIR}"/${P}-kcms-desktoptheme-detect-installed-styles-{1,2}.patch # KDE-bug 453830 + "${FILESDIR}"/${P}-applets-kicker-refresh-RootModel-on-session-backend.patch # KDE-bug 427530 ) src_prepare() { diff --git a/kde-plasma/plasma-workspace/plasma-workspace-5.24.4.ebuild b/kde-plasma/plasma-workspace/plasma-workspace-5.25.2.ebuild index 8c06edc3b7e3..fda548de9024 100644 --- a/kde-plasma/plasma-workspace/plasma-workspace-5.24.4.ebuild +++ b/kde-plasma/plasma-workspace/plasma-workspace-5.25.2.ebuild @@ -3,11 +3,11 @@ EAPI=8 -ECM_HANDBOOK="forceoptional" +ECM_HANDBOOK="optional" ECM_TEST="forceoptional" -KFMIN=5.90.0 +KFMIN=5.94.0 PVCUT=$(ver_cut 1-3) -QTMIN=5.15.2 +QTMIN=5.15.4 VIRTUALX_REQUIRED="test" inherit ecm kde.org @@ -15,7 +15,7 @@ DESCRIPTION="KDE Plasma workspace" LICENSE="GPL-2" # TODO: CHECK SLOT="5" -KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" IUSE="appstream +calendar +fontconfig geolocation gps +policykit screencast +semantic-desktop telemetry" @@ -123,6 +123,7 @@ DEPEND="${COMMON_DEPEND} >=dev-util/wayland-scanner-1.19.0 x11-base/xorg-proto fontconfig? ( x11-libs/libXrender ) + test? ( >=dev-libs/wayland-protocols-1.24 ) " RDEPEND="${COMMON_DEPEND} app-text/iso-codes @@ -152,7 +153,7 @@ BDEPEND=" PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5" PATCHES=( - "${FILESDIR}/${PN}-5.21.5-split-libkworkspace.patch" # downstream + "${FILESDIR}/${PN}-5.24.80-split-libkworkspace.patch" # downstream "${FILESDIR}/${PN}-5.22.5-krunner-cwd-at-home.patch" # TODO upstream: KDE-bug 432975, bug 767478 ) @@ -179,8 +180,6 @@ src_prepare() { if ! use policykit; then cmake_run_in kcms cmake_comment_add_subdirectory users fi - - ecm_punt_kf_module Su } src_configure() { |