commit: c8423c30d5f08634ff99db038127f9f8735225ad
Author: Jason A. Donenfeld gentoo org>
AuthorDate: Tue Sep 13 02:26:45 2016 +
Commit: Jason Donenfeld gentoo org>
CommitDate: Tue Sep 13 02:27:03 2016 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8423c30
kde-plasma/kde-gtk-config: ensure we use gentoo cursor paths by importing
upstream patch
Package-Manager: portage-2.3.0
...fig-5.7.4-look-for-cursors-in-right-place.patch | 152 +
...5.7.4.ebuild => kde-gtk-config-5.7.4-r1.ebuild} | 2 +-
2 files changed, 153 insertions(+), 1 deletion(-)
diff --git
a/kde-plasma/kde-gtk-config/files/kde-gtk-config-5.7.4-look-for-cursors-in-right-place.patch
b/kde-plasma/kde-gtk-config/files/kde-gtk-config-5.7.4-look-for-cursors-in-right-place.patch
new file mode 100644
index ..d44ad28
--- /dev/null
+++
b/kde-plasma/kde-gtk-config/files/kde-gtk-config-5.7.4-look-for-cursors-in-right-place.patch
@@ -0,0 +1,152 @@
+From 43323a188f17822cc7b26055b70e1e79cd50fc23 Mon Sep 17 00:00:00 2001
+From: "Jason A. Donenfeld"
+Date: Tue, 13 Sep 2016 04:13:47 +0200
+Subject: [PATCH] cursor model: look for cursors in correct place
+
+plasma-desktop's cursor theme kcm does the right thing, by consulting
+the libXcursor library for the right search paths. Unfortunately, the
+kcm here does a pretty butchered job of it. So, we copy, more or less,
+the same algorithm used by plasma-desktop. Now there's parity in cursor
+selection.
+---
+ CMakeLists.txt| 2 +-
+ src/cursorthemesmodel.cpp | 47 ---
+ src/cursorthemesmodel.h | 3 +--
+ src/gtkconfigkcmodule.cpp | 2 +-
+ 4 files changed, 43 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 07d313c..ee2eed9 100644
+--- a/CMakeLists.txt
b/CMakeLists.txt
+@@ -54,7 +54,7 @@ ki18n_wrap_ui(kcm_SRCS
+ )
+ add_library(kcm_kdegtkconfig MODULE ${kcm_SRCS})
+ target_compile_definitions(kcm_kdegtkconfig PRIVATE
-DPROJECT_VERSION="${PROJECT_VERSION}")
+-target_link_libraries(kcm_kdegtkconfig KF5::I18n KF5::KIOWidgets
KF5::NewStuff KF5::Archive KF5::NewStuff KF5::ConfigWidgets KF5::IconThemes)
++target_link_libraries(kcm_kdegtkconfig ${X11_Xcursor_LIB} KF5::I18n
KF5::KIOWidgets KF5::NewStuff KF5::Archive KF5::NewStuff KF5::ConfigWidgets
KF5::IconThemes)
+
+ kcoreaddons_desktop_to_json(kcm_kdegtkconfig kde-gtk-config.desktop)
+
+diff --git a/src/cursorthemesmodel.cpp b/src/cursorthemesmodel.cpp
+index 5238714..2955bd9 100644
+--- a/src/cursorthemesmodel.cpp
b/src/cursorthemesmodel.cpp
+@@ -27,9 +27,17 @@
+ #include
+ #include
+
+-CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
++#include
++#include
++
++// Check for older version
++#if !defined(XCURSOR_LIB_MAJOR) && defined(XCURSOR_MAJOR)
++# define XCURSOR_LIB_MAJOR XCURSOR_MAJOR
++# define XCURSOR_LIB_MINOR XCURSOR_MINOR
++#endif
++
++CursorThemesModel::CursorThemesModel(QObject* parent)
+ : IconThemesModel(parent)
+-, m_onlyHome(onlyHome)
+ {
+ reload();
+ }
+@@ -37,13 +45,38 @@ CursorThemesModel::CursorThemesModel(bool onlyHome,
QObject* parent)
+ QList CursorThemesModel::installedThemesPaths()
+ {
+ QList availableIcons;
++QStringList dirs;
++
++#if XCURSOR_LIB_MAJOR == 1 && XCURSOR_LIB_MINOR < 1
++// These are the default paths Xcursor will scan for cursor themes
++QString
path("~/.icons:/usr/share/icons:/usr/share/pixmaps:/usr/X11R6/lib/X11/icons");
++
++// If XCURSOR_PATH is set, use that instead of the default path
++char *xcursorPath = std::getenv("XCURSOR_PATH");
++if (xcursorPath)
++path = xcursorPath;
++#else
++// Get the search path from Xcursor
++QString path = XcursorLibraryPath();
++#endif
+
+-QSet dirs;
+-dirs += QDir::home().filePath(".icons");
+-if(!m_onlyHome) {
+-dirs +=
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "icons",
QStandardPaths::LocateDirectory).toSet();
++// Separate the paths
++dirs = path.split(':', QString::SkipEmptyParts);
++
++// Remove duplicates
++QMutableStringListIterator i(dirs);
++while (i.hasNext())
++{
++const QString path = i.next();
++QMutableStringListIterator j(i);
++while (j.hasNext())
++if (j.next() == path)
++j.remove();
+ }
+-
++
++// Expand all occurrences of ~/ to the home dir
++dirs.replaceInStrings(QRegExp(QStringLiteral("^~\\/")),
QDir::home().path() + '/');
++
+ foreach(const QString& dir, dirs) {
+ QDir userIconsDir(dir);
+ QDirIterator it(userIconsDir.path(),
QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
+diff --git a/src/cursorthemesmodel.h b/src/cursorthemesmodel.h
+index 7658bd5..4acfa4b 100644
+--- a/src/cursorthemesmodel.h
b/src/cursorthemesmodel.h
+@@ -29,14 +29,13 @@ class QDir;
+ class CursorThemesModel : public IconThemesModel
+ {
+ public:
+-