revert upstream commit wrt icon inheritance, for now, to avoid regression (kde#317138)
This commit is contained in:
parent
ee0ccd4dc6
commit
c0f75e8d30
12
kdelibs.spec
12
kdelibs.spec
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
Summary: KDE Libraries
|
Summary: KDE Libraries
|
||||||
Version: 4.10.2
|
Version: 4.10.2
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
|
|
||||||
Name: kdelibs
|
Name: kdelibs
|
||||||
Epoch: 6
|
Epoch: 6
|
||||||
@ -156,6 +156,12 @@ Patch61: kdelibs-4.9.3-dot.patch
|
|||||||
|
|
||||||
## upstream
|
## 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
|
## security fix
|
||||||
# Not Upstreamed? why not ? -- Rex
|
# Not Upstreamed? why not ? -- Rex
|
||||||
Patch200: kdelibs-4.10.0-CVE-2009-2702.patch
|
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
|
%patch61 -p1 -b .dot
|
||||||
|
|
||||||
# upstream patches
|
# upstream patches
|
||||||
|
%patch100 -p1 -R -b .return-application-icons-properly
|
||||||
|
|
||||||
# security fixes
|
# security fixes
|
||||||
%patch200 -p1 -b .CVE-2009-2702
|
%patch200 -p1 -b .CVE-2009-2702
|
||||||
@ -587,6 +594,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 16 2013 Rex Dieter <rdieter@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@fedoraproject.org> 6:4.10.2-1
|
* Sat Mar 30 2013 Rex Dieter <rdieter@fedoraproject.org> 6:4.10.2-1
|
||||||
- 4.10.2
|
- 4.10.2
|
||||||
|
|
||||||
|
55
return-application-icons-properly.patch
Normal file
55
return-application-icons-properly.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From 613c951a1157df0d8a907a155a5eaa706816d5f9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aaron Seigo <aseigo@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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user