[kdelibs] revert upstream commit wrt icon inheritance, for now, to avoid regression (kde#317138)
Rex Dieter
rdieter at fedoraproject.org
Tue Apr 16 18:30:09 UTC 2013
commit c0f75e8d308362709e4681bd1aaca53dea8fed50
Author: Rex Dieter <rdieter at math.unl.edu>
Date: Tue Apr 16 13:30:06 2013 -0500
revert upstream commit wrt icon inheritance, for now, to avoid regression (kde#317138)
kdelibs.spec | 12 ++++++-
return-application-icons-properly.patch | 55 +++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 1 deletions(-)
---
diff --git a/kdelibs.spec b/kdelibs.spec
index 5b2c57a..b73ae5a 100644
--- a/kdelibs.spec
+++ b/kdelibs.spec
@@ -33,7 +33,7 @@
Summary: KDE Libraries
Version: 4.10.2
-Release: 1%{?dist}
+Release: 2%{?dist}
Name: kdelibs
Epoch: 6
@@ -156,6 +156,12 @@ Patch61: kdelibs-4.9.3-dot.patch
## upstream
+# revert this fix for
+#https://bugs.kde.org/315578
+# for now, causes regression,
+#https://bugs.kde.org/317138
+Patch100: return-application-icons-properly.patch
+
## security fix
# Not Upstreamed? why not ? -- Rex
Patch200: kdelibs-4.10.0-CVE-2009-2702.patch
@@ -344,6 +350,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch61 -p1 -b .dot
# upstream patches
+%patch100 -p1 -R -b .return-application-icons-properly
# security fixes
%patch200 -p1 -b .CVE-2009-2702
@@ -587,6 +594,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
%changelog
+* Tue Apr 16 2013 Rex Dieter <rdieter at fedoraproject.org> 6:4.10.2-2
+- revert upstream commit wrt icon inheritance, for now, to avoid regression (kde#317138)
+
* Sat Mar 30 2013 Rex Dieter <rdieter at fedoraproject.org> 6:4.10.2-1
- 4.10.2
diff --git a/return-application-icons-properly.patch b/return-application-icons-properly.patch
new file mode 100644
index 0000000..961d021
--- /dev/null
+++ b/return-application-icons-properly.patch
@@ -0,0 +1,55 @@
+From 613c951a1157df0d8a907a155a5eaa706816d5f9 Mon Sep 17 00:00:00 2001
+From: Aaron Seigo <aseigo at kde.org>
+Date: Thu, 21 Feb 2013 17:58:11 +0100
+Subject: return application icons properly
+
+BUG:315578
+---
+ kdeui/icons/kiconloader.cpp | 31 ++++++++++++++++++++++++++++++-
+ 1 file changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
+index f65e941..6fed667 100644
+--- a/kdeui/icons/kiconloader.cpp
++++ b/kdeui/icons/kiconloader.cpp
+@@ -909,7 +909,36 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
+ const char * const ext[4] = { ".png", ".svgz", ".svg", ".xpm" };
+ bool genericFallback = name.endsWith(QLatin1String("-x-generic"));
+
+- foreach(KIconThemeNode *themeNode, links)
++ // Do two passes through themeNodes.
++ //
++ // The first pass looks for an exact match in each themeNode one after the other.
++ // If one is found and it is an app icon then return that icon.
++ //
++ // In the next pass (assuming the first pass failed), it looks for exact matches
++ // and then generic fallbacks in each themeNode one after the other
++ //
++ // The reasoning is that application icons should always match exactly, all other
++ // icons may fallback. Since we do not know what the context is here when we start
++ // looking for it, we can only go by the path found.
++ foreach (KIconThemeNode *themeNode, links) {
++ for (int i = 0 ; i < 4 ; i++) {
++ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchExact);
++ if (icon.isValid()) {
++ break;
++ }
++
++ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchBest);
++ if (icon.isValid()) {
++ break;
++ }
++ }
++
++ if (icon.isValid() && icon.path.contains("/apps/")) {
++ return icon;
++ }
++ }
++
++ foreach (KIconThemeNode *themeNode, links)
+ {
+ QString currentName = name;
+
+--
+1.8.1.4
+
More information about the scm-commits
mailing list