diff --git a/0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch b/0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch deleted file mode 100644 index 88f1102..0000000 --- a/0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 6995ba91368aafdb79f49eee379bd7c8ed79b671 Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Tue, 8 Nov 2016 15:14:33 +0100 -Subject: [PATCH 1/5] [taskmanagerrulesrc] Add Rewrite Rule for Google-chrome - -Google Chrome needlessly changed its window class class to Google-chrome -(was google-chrome previously) breaking our launcher mapping. - -BUG: 372211 -FIXED-IN: 5.8.4 - -Differential Revision: https://phabricator.kde.org/D3308 ---- - libtaskmanager/taskmanagerrulesrc | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/libtaskmanager/taskmanagerrulesrc b/libtaskmanager/taskmanagerrulesrc -index 56ff05b..915f99f 100644 ---- a/libtaskmanager/taskmanagerrulesrc -+++ b/libtaskmanager/taskmanagerrulesrc -@@ -22,6 +22,13 @@ Identifier=DesktopEntryName - Match=(?<=crx_)(?'match'[a-z]+) - Target=chrome-%1-default - -+# Google changed the class to be "Google-chrome" around version 54 -+[Rewrite Rules][Google-chrome][1] -+Property=ClassName -+Identifier=DesktopEntryName -+Match=(?<=crx_)(?'match'[a-z]+) -+Target=chrome-%1-default -+ - [Rewrite Rules][chromium][1] - Property=ClassName - Identifier=DesktopEntryName --- -2.10.1 - diff --git a/0002-make-sure-all-outputs-are-known.patch b/0002-make-sure-all-outputs-are-known.patch deleted file mode 100644 index acb5d63..0000000 --- a/0002-make-sure-all-outputs-are-known.patch +++ /dev/null @@ -1,76 +0,0 @@ -From c89560cb534692ac9344533a207216e219de60d1 Mon Sep 17 00:00:00 2001 -From: Marco Martin -Date: Wed, 9 Nov 2016 15:54:42 +0100 -Subject: [PATCH 2/5] make sure all outputs are known - -at startup, if a screen id is missing from the screenpool mapping -containment::screen() will return -1 for a moment in the startup -phase even if it has a valid lastScreen - -populate mappings of eventual missing stuff at screenpool ctor - -make sure destroyed containments don't get assigned a view - -reviewed-by: David Edmundson - -CCBUG:372099 -CCBUG:371858 -CCBUG:371991 -CCBUG:371819 -CCBUG:371734 ---- - shell/screenpool.cpp | 11 +++++++++++ - shell/shellcorona.cpp | 8 +++++++- - 2 files changed, 18 insertions(+), 1 deletion(-) - -diff --git a/shell/screenpool.cpp b/shell/screenpool.cpp -index 89868e8..011300d 100644 ---- a/shell/screenpool.cpp -+++ b/shell/screenpool.cpp -@@ -51,6 +51,17 @@ ScreenPool::ScreenPool(KSharedConfig::Ptr config, QObject *parent) - m_configGroup.deleteEntry(key); - } - } -+ -+ // if there are already connected unknown screens, map those -+ // all needs to be populated as soon as possible, otherwise -+ // containment->screen() will return an incorrect -1 -+ // at startup, if it' asked before corona::addOutput() -+ // is performed, driving to the creation of a new containment -+ for (QScreen* screen : qGuiApp->screens()) { -+ if (!m_idForConnector.contains(screen->name())) { -+ insertScreenMapping(firstAvailableId(), screen->name()); -+ } -+ } - } - - ScreenPool::~ScreenPool() -diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp -index 33259da..8189eed 100644 ---- a/shell/shellcorona.cpp -+++ b/shell/shellcorona.cpp -@@ -1154,7 +1154,12 @@ Plasma::Containment *ShellCorona::createContainmentForActivity(const QString& ac - { - if (m_desktopContainments.contains(activity)) { - for (Plasma::Containment *cont : m_desktopContainments.value(activity)) { -- if (cont->screen() == screenNum && cont->activity() == activity) { -+ //in the case of a corrupt config file -+ //with multiple containments with same lastScreen -+ //it can happen two insertContainment happen for -+ //the same screen, leading to the old containment -+ //to be destroyed -+ if (!cont->destroyed() && cont->screen() == screenNum && cont->activity() == activity) { - return cont; - } - } -@@ -1808,6 +1813,7 @@ int ShellCorona::screenForContainment(const Plasma::Containment *containment) co - // qDebug() << "ShellCorona screenForContainment: " << containment << " Last screen is " << containment->lastScreen(); - - for (auto screen : qGuiApp->screens()) { -+ // containment->lastScreen() == m_screenPool->id(screen->name()) to check if the lastScreen refers to a screen that exists/it's known - if (containment->lastScreen() == m_screenPool->id(screen->name()) && - (containment->activity() == m_activityController->currentActivity() || - containment->containmentType() == Plasma::Types::PanelContainment || containment->containmentType() == Plasma::Types::CustomPanelContainment)) { --- -2.10.1 - diff --git a/0003-Sync-app-config-in-sync-with-applets-config.patch b/0003-Sync-app-config-in-sync-with-applets-config.patch deleted file mode 100644 index e9438e0..0000000 --- a/0003-Sync-app-config-in-sync-with-applets-config.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8ddb7ff40ea8027a1a355b67e4e4e2d57bd28abe Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Wed, 9 Nov 2016 15:11:52 +0000 -Subject: [PATCH 3/5] Sync app config in sync with applets config - ---- - shell/shellcorona.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp -index 8189eed..2e6dda7 100644 ---- a/shell/shellcorona.cpp -+++ b/shell/shellcorona.cpp -@@ -114,6 +114,9 @@ ShellCorona::ShellCorona(QObject *parent) - m_appConfigSyncTimer.setSingleShot(true); - m_appConfigSyncTimer.setInterval(s_configSyncDelay); - connect(&m_appConfigSyncTimer, &QTimer::timeout, this, &ShellCorona::syncAppConfig); -+ //we want our application config with screen mapping to always be in sync with the applets one, so a crash at any time will still -+ //leave containments pointing to the correct screens -+ connect(this, &Corona::configSynced, this, &ShellCorona::syncAppConfig); - - m_waitingPanelsTimer.setSingleShot(true); - m_waitingPanelsTimer.setInterval(250); --- -2.10.1 - diff --git a/0004-Avoid-connecting-to-screen-changed-signals-twice.patch b/0004-Avoid-connecting-to-screen-changed-signals-twice.patch deleted file mode 100644 index 0666602..0000000 --- a/0004-Avoid-connecting-to-screen-changed-signals-twice.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 6248a975791a71465f06e8e403fcf5326326958d Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Thu, 10 Nov 2016 10:28:16 +0000 -Subject: [PATCH 4/5] Avoid connecting to screen changed signals twice - -Summary: -load() can be called multiple times; either from setShell or -loadLookAndFeelDefaultLayout. We still only want addOutput once when a -screen is added - -Reviewers: #plasma, apol - -Reviewed By: apol - -Subscribers: plasma-devel - -Tags: #plasma - -Differential Revision: https://phabricator.kde.org/D3320 - -CCBUG:372099 -CCBUG:371858 -CBUG:371991 -CCBUG:371819 -CCBUG:371734 ---- - shell/shellcorona.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp -index 2e6dda7..0e926dd 100644 ---- a/shell/shellcorona.cpp -+++ b/shell/shellcorona.cpp -@@ -675,9 +675,9 @@ void ShellCorona::load() - addOutput(screen); - } - } -- connect(qGuiApp, &QGuiApplication::screenAdded, this, &ShellCorona::addOutput); -- connect(qGuiApp, &QGuiApplication::primaryScreenChanged, this, &ShellCorona::primaryOutputChanged); -- connect(qGuiApp, &QGuiApplication::screenRemoved, this, &ShellCorona::screenRemoved); -+ connect(qGuiApp, &QGuiApplication::screenAdded, this, &ShellCorona::addOutput, Qt::UniqueConnection); -+ connect(qGuiApp, &QGuiApplication::primaryScreenChanged, this, &ShellCorona::primaryOutputChanged, Qt::UniqueConnection); -+ connect(qGuiApp, &QGuiApplication::screenRemoved, this, &ShellCorona::screenRemoved, Qt::UniqueConnection); - - if (!m_waitingPanels.isEmpty()) { - m_waitingPanelsTimer.start(); --- -2.10.1 - diff --git a/0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch b/0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch deleted file mode 100644 index a14b030..0000000 --- a/0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 38eb3766279bbd5e1faab5295f8e49cdd4b3317f Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Thu, 10 Nov 2016 10:29:27 +0000 -Subject: [PATCH 5/5] Load screenpool at the same time as we connect to - screenchanged signals - -Summary: -Otherwise we have a gap during load (waiting querying kactivities)) -between screen pool being created and us connecting to the screen -changed signals, which in turn are used to update screen pool. - -In particular the primary screen can get out of sync between the current -state and the screen pool. - -Test Plan: Based on Christopher Feck's research and initial patch - -Reviewers: #plasma - -Subscribers: mart, rwooninck, fvogt, cfeck, plasma-devel - -Tags: #plasma - -Differential Revision: https://phabricator.kde.org/D3319 - - CCBUG:372099 - CCBUG:371858 - CBUG:371991 - CCBUG:371819 - CCBUG:371734 ---- - shell/autotests/screenpooltest.cpp | 1 + - shell/screenpool.cpp | 8 ++++++++ - shell/screenpool.h | 1 + - shell/shellcorona.cpp | 4 +++- - 4 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/shell/autotests/screenpooltest.cpp b/shell/autotests/screenpooltest.cpp -index 5d0522f..5fc844a 100644 ---- a/shell/autotests/screenpooltest.cpp -+++ b/shell/autotests/screenpooltest.cpp -@@ -51,6 +51,7 @@ void ScreenPoolTest::initTestCase() - cg.deleteGroup(); - cg.sync(); - m_screenPool = new ScreenPool(KSharedConfig::openConfig(), this); -+ m_screenPool->load(); - } - - void ScreenPoolTest::cleanupTestCase() -diff --git a/shell/screenpool.cpp b/shell/screenpool.cpp -index 011300d..b60cca1 100644 ---- a/shell/screenpool.cpp -+++ b/shell/screenpool.cpp -@@ -30,6 +30,14 @@ ScreenPool::ScreenPool(KSharedConfig::Ptr config, QObject *parent) - connect(&m_configSaveTimer, &QTimer::timeout, this, [this](){ - m_configGroup.sync(); - }); -+} -+ -+void ScreenPool::load() -+{ -+ m_primaryConnector = QString(); -+ m_connectorForId.clear(); -+ m_idForConnector.clear(); -+ - QScreen *primary = qGuiApp->primaryScreen(); - if (primary) { - m_primaryConnector = primary->name(); -diff --git a/shell/screenpool.h b/shell/screenpool.h -index 046d18b..9b3a9af 100644 ---- a/shell/screenpool.h -+++ b/shell/screenpool.h -@@ -33,6 +33,7 @@ class ScreenPool : public QObject { - - public: - ScreenPool(KSharedConfig::Ptr config, QObject *parent = nullptr); -+ void load(); - ~ScreenPool() override; - - QString primaryConnector() const; -diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp -index 0e926dd..0cab1b7 100644 ---- a/shell/shellcorona.cpp -+++ b/shell/shellcorona.cpp -@@ -627,6 +627,8 @@ void ShellCorona::load() - - disconnect(m_activityController, &KActivities::Controller::serviceStatusChanged, this, &ShellCorona::load); - -+ m_screenPool->load(); -+ - //TODO: a kconf_update script is needed - QString configFileName(QStringLiteral("plasma-") + m_shell + QStringLiteral("-appletsrc")); - -@@ -1160,7 +1162,7 @@ Plasma::Containment *ShellCorona::createContainmentForActivity(const QString& ac - //in the case of a corrupt config file - //with multiple containments with same lastScreen - //it can happen two insertContainment happen for -- //the same screen, leading to the old containment -+ //the same screen, leading to the old containment - //to be destroyed - if (!cont->destroyed() && cont->screen() == screenNum && cont->activity() == activity) { - return cont; --- -2.10.1 - diff --git a/Look-for-both-json-and-desktop-metadata.patch b/Look-for-both-json-and-desktop-metadata.patch deleted file mode 100644 index 1d935c9..0000000 --- a/Look-for-both-json-and-desktop-metadata.patch +++ /dev/null @@ -1,80 +0,0 @@ -From: Aleix Pol -Date: Mon, 31 Oct 2016 11:06:30 +0000 -Subject: Make sure we're looking both for json and desktop metadata -X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=bfb91f9de153d53a30d82ad6ce0d6732da4ab367 ---- -Make sure we're looking both for json and desktop metadata - -We shouldn't assume metadata is in metadata.desktop - -REVIEW: 129276 ---- - - ---- a/shell/containmentconfigview.cpp -+++ b/shell/containmentconfigview.cpp -@@ -141,8 +141,8 @@ - QStringList packages; - - foreach (const QString &sdir, dir.entryList(QDir::AllDirs | QDir::Readable)) { -- QString metadata = dirPath + '/' + sdir + "/metadata.desktop"; -- if (QFile::exists(metadata)) { -+ const QString metadata = dirPath + '/' + sdir; -+ if (QFile::exists(metadata + "/metadata.json") || QFile::exists(metadata + "/metadata.desktop")) { - packages << sdir; - } - } - ---- a/shell/scripting/scriptengine_v1.cpp -+++ b/shell/scripting/scriptengine_v1.cpp -@@ -510,6 +510,11 @@ - if (sc) { - const QString overridePackagePath = sc->lookAndFeelPackage().path() + QStringLiteral("contents/layouts/") + pluginData.pluginId(); - -+ path = overridePackagePath + QStringLiteral("/metadata.json"); -+ if (QFile::exists(path)) { -+ package.setPath(overridePackagePath); -+ } -+ - path = overridePackagePath + QStringLiteral("/metadata.desktop"); - if (QFile::exists(path)) { - package.setPath(overridePackagePath); -@@ -518,7 +523,10 @@ - } - - if (!package.isValid()) { -- path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, package.defaultPackageRoot() + pluginData.pluginId() + "/metadata.desktop"); -+ path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, package.defaultPackageRoot() + pluginData.pluginId() + "/metadata.json"); -+ if (path.isEmpty()) { -+ path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, package.defaultPackageRoot() + pluginData.pluginId() + "/metadata.desktop"); -+ } - if (path.isEmpty()) { - // qDebug() << "script path is empty"; - return false; - ---- a/wallpapers/image/backgroundlistmodel.cpp -+++ b/wallpapers/image/backgroundlistmodel.cpp -@@ -559,7 +559,7 @@ - } - - const QString filePath = wp.filePath(); -- if (QFile::exists(filePath + QString::fromLatin1("/metadata.desktop"))) { -+ if (QFile::exists(filePath + QString::fromLatin1("/metadata.desktop")) || QFile::exists(filePath + QString::fromLatin1("/metadata.json"))) { - package.setPath(filePath); - if (package.isValid()) { - if (!package.filePath("images").isEmpty()) { - ---- a/wallpapers/image/image.cpp -+++ b/wallpapers/image/image.cpp -@@ -453,7 +453,9 @@ - } - } else { - //if it's not an absolute path, check if it's just a wallpaper name -- const QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("wallpapers/") + QString(m_wallpaper + QString::fromLatin1("/metadata.desktop"))); -+ QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("wallpapers/") + QString(m_wallpaper + QString::fromLatin1("/metadata.json"))); -+ if (path.isEmpty()) -+ path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("wallpapers/") + QString(m_wallpaper + QString::fromLatin1("/metadata.desktop"))); - - if (!path.isEmpty()) { - QDir dir(path); - diff --git a/keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff b/keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff deleted file mode 100644 index 1809b1d..0000000 --- a/keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/wallpapers/image/image.cpp b/wallpapers/image/image.cpp -index 0aa72bb..0a65b7d 100644 ---- a/wallpapers/image/image.cpp -+++ b/wallpapers/image/image.cpp -@@ -192,7 +192,7 @@ void Image::findPreferedImageInPackage(KPackage::Package &package) - // choose the nearest resolution, always preferring images with the same aspect ratio - float best = FLT_MAX; - float bestWithSameAspectRatio = FLT_MAX; -- float targetAspectRatio = m_targetSize.width()/(float)m_targetSize.height(); -+ float targetAspectRatio = ( m_targetSize.height() > 0 ) ? m_targetSize.width() / (float)m_targetSize.height() : 0; - - QString bestImage; - QString bestImageWithSameAspectRatio; -@@ -201,7 +201,7 @@ void Image::findPreferedImageInPackage(KPackage::Package &package) - if (candidate == QSize()) { - continue; - } -- float candidateAspectRatio = candidate.width()/(float)candidate.height(); -+ float candidateAspectRatio = (candidate.height() > 0 ) ? candidate.width() / (float)candidate.height() : FLT_MAX; - - double dist = distance(candidate, m_targetSize); - //qDebug() << "candidate" << candidate << "distance" << dist << "aspect ratio" << candidateAspectRatio; -@@ -235,9 +235,15 @@ QSize Image::targetSize() const - - void Image::setTargetSize(const QSize &size) - { -+ bool sizeChanged = m_targetSize != size; - m_targetSize = size; - - if (m_mode == SingleImage) { -+ if (sizeChanged) { -+ // If screen size was changed, we may want to select a new preferred image -+ // which has correct aspect ratio for the new screen size. -+ m_wallpaperPackage.removeDefinition("preferred"); -+ } - setSingleImage(); - } - } diff --git a/plasma-workspace-5.8.3.tar.xz b/plasma-workspace-5.8.3.tar.xz deleted file mode 100644 index 6568bad..0000000 --- a/plasma-workspace-5.8.3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b2f455bdf355d7d771bd6fb4e19510ec4b131c093b23268cb9c1a321c75059a -size 6955700 diff --git a/plasma-workspace-5.8.4.tar.xz b/plasma-workspace-5.8.4.tar.xz new file mode 100644 index 0000000..eb16af2 --- /dev/null +++ b/plasma-workspace-5.8.4.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d732e141ccf6f56c02fc8f4234323ceaf907d159a736f907715e84118cf8dc3 +size 7018972 diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index cd94599..a0b5322 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Nov 23 10:59:30 UTC 2016 - fabian@ritter-vogt.de + +- Update to 5.8.4 + * New bugfix release + * For more details please see: + https://www.kde.org/announcements/plasma-5.8.4.php +- Remove patches, now upstream: + * 0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch + * 0002-make-sure-all-outputs-are-known.patch + * 0003-Sync-app-config-in-sync-with-applets-config.patch + * 0004-Avoid-connecting-to-screen-changed-signals-twice.patch + * 0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch + * Look-for-both-json-and-desktop-metadata.patch + * keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff + * plasma5-workspace.spec + * use-nearest-aspect-ratio-available-wallpaper.diff + ------------------------------------------------------------------- Sat Nov 12 21:03:18 UTC 2016 - wbauer@tmo.at diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 3b20dd3..d739acd 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -20,9 +20,9 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.8.3 +Version: 5.8.4 Release: 0 -# Full Plasma 5 version (e.g. 5.8.3) +# Full Plasma 5 version (e.g. 5.8.4) %{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}} # Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.8.90 in KUF) %{!?_plasma5_version: %global _plasma5_version %(echo %{_plasma5_bugfix} | awk -F. '{print $1"."$2}')} @@ -41,22 +41,6 @@ Patch2: 0001-Ignore-default-sddm-face-icons.patch # PATCH-FIX-OPENSUSE add-tray-icon-cache.patch kde#356479 fabian@ritter-vogt.de -- Workaround for high load due to animated tray icons Patch3: add-tray-icon-cache.patch # PATCHES 100-200 and above are from upstream 5.8 branch -# PATCH-FIX-UPSTREAM keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff alarrosa@suse.com -- Keep wallpaper aspect ratio on screen resolution change -Patch100: keep-wallpaper-aspect-ratio-wallpaper-on-screen-resolution-change.diff -# PATCH-FIX-UPSTREAM use-nearest-aspect-ratio-available-wallpaper.diff alarrosa@suse.com -- New distance algorithm to simplify and improve the wallpaper selection -Patch101: use-nearest-aspect-ratio-available-wallpaper.diff -# PATCH-FIX-UPSTREAM 0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch kde@privat.broulik.de -- [taskmanagerrulesrc] Add Rewrite Rule for Google-chrome -Patch102: 0001-taskmanagerrulesrc-Add-Rewrite-Rule-for-Google-chrom.patch -# PATCH-FIX-UPSTREAM 0002-make-sure-all-outputs-are-known.patch notmart@gmail.com -- make sure all outputs are known -Patch103: 0002-make-sure-all-outputs-are-known.patch -# PATCH-FIX-UPSTREAM 0003-Sync-app-config-in-sync-with-applets-config.patch kde@davidedmundson.co.uk -- Sync app config in sync with applets config -Patch104: 0003-Sync-app-config-in-sync-with-applets-config.patch -# PATCH-FIX-UPSTREAM 0004-Avoid-connecting-to-screen-changed-signals-twice.patch kde@davidedmundson.co.uk -- Avoid connecting to screen changed signals twice -Patch105: 0004-Avoid-connecting-to-screen-changed-signals-twice.patch -# PATCH-FIX-UPSTREAM 0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch kde@davidedmundson.co.uk -- Load screenpool at the same time as we connect to screenchanged signals -Patch106: 0005-Load-screenpool-at-the-same-time-as-we-connect-to-sc.patch -# PATCH-FIX-UPSTREAM Look-for-both-json-and-desktop-metadata.patch -- Fix adding a panel with the new json metadata files -Patch107: Look-for-both-json-and-desktop-metadata.patch # PATCHES 201-300 and above are from upstream master/5.9 branch BuildRequires: breeze5-icons BuildRequires: fdupes @@ -227,14 +211,6 @@ workspace. Development files. %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} diff --git a/use-nearest-aspect-ratio-available-wallpaper.diff b/use-nearest-aspect-ratio-available-wallpaper.diff deleted file mode 100644 index 36526cf..0000000 --- a/use-nearest-aspect-ratio-available-wallpaper.diff +++ /dev/null @@ -1,72 +0,0 @@ -Index: plasma-workspace-5.8.2/wallpapers/image/image.cpp -=================================================================== ---- plasma-workspace-5.8.2.orig/wallpapers/image/image.cpp -+++ plasma-workspace-5.8.2/wallpapers/image/image.cpp -@@ -156,13 +156,14 @@ void Image::setRenderingMode(RenderingMo - float distance(const QSize& size, const QSize& desired) - { - // compute difference of areas -- float delta = size.width() * size.height() - -- desired.width() * desired.height(); -- // scale down to about 1.0 -- delta /= ((desired.width() * desired.height())+(size.width() * size.height()))/2; -+ float desiredAspectRatio = ( desired.height() > 0 ) ? desired.width() / (float)desired.height() : 0; -+ float candidateAspectRatio = (size.height() > 0 ) ? size.width() / (float)size.height() : FLT_MAX; -+ -+ float delta = size.width() - desired.width(); -+ delta = (delta >= 0.0 ? delta : -delta*2 ); // Penalize for scaling up -+ -+ return qAbs(candidateAspectRatio - desiredAspectRatio)*25000 + delta; - -- // Difference of areas, slight preference to scale down -- return delta >= 0.0 ? delta : -delta + 2.0; - } - - QSize resSize(const QString &str) -@@ -187,42 +188,28 @@ void Image::findPreferedImageInPackage(K - return; - } - -- //qDebug() << "wanted" << m_targetSize << "options" << images; -+ //float targetAspectRatio = (m_targetSize.height() > 0 ) ? m_targetSize.width() / (float)m_targetSize.height() : 0; -+ //qDebug() << "wanted" << m_targetSize << "options" << images << "aspect ratio" << targetAspectRatio; - -- // choose the nearest resolution, always preferring images with the same aspect ratio - float best = FLT_MAX; -- float bestWithSameAspectRatio = FLT_MAX; -- float targetAspectRatio = ( m_targetSize.height() > 0 ) ? m_targetSize.width() / (float)m_targetSize.height() : 0; -- - QString bestImage; -- QString bestImageWithSameAspectRatio; - foreach (const QString &entry, images) { - QSize candidate = resSize(QFileInfo(entry).baseName()); - if (candidate == QSize()) { - continue; - } -- float candidateAspectRatio = (candidate.height() > 0 ) ? candidate.width() / (float)candidate.height() : FLT_MAX; -+ //float candidateAspectRatio = (candidate.height() > 0 ) ? candidate.width() / (float)candidate.height() : FLT_MAX; - - double dist = distance(candidate, m_targetSize); - //qDebug() << "candidate" << candidate << "distance" << dist << "aspect ratio" << candidateAspectRatio; - -- if ( candidateAspectRatio == targetAspectRatio && (bestImageWithSameAspectRatio.isEmpty() || dist < bestWithSameAspectRatio) ) { -- bestImageWithSameAspectRatio = entry; -- bestWithSameAspectRatio = dist; -- //qDebug() << "bestWithSameAspectRatio" << bestImageWithSameAspectRatio; -- if (dist == 0) { -- break; -- } -- } else if (bestImage.isEmpty() || dist < best) { -+ if (bestImage.isEmpty() || dist < best) { - bestImage = entry; - best = dist; - //qDebug() << "best" << bestImage; - } - } - -- if (!bestImageWithSameAspectRatio.isEmpty()) // Always prefer an image with the same aspect ratio as the target (if available) -- bestImage=bestImageWithSameAspectRatio; -- - //qDebug() << "best image" << bestImage; - package.removeDefinition("preferred"); - package.addFileDefinition("preferred", "images/" + bestImage, i18n("Recommended wallpaper file"));