summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kde-plasma/kde-gtk-config/files/kde-gtk-config-5.7.4-look-for-cursors-in-right-place.patch119
1 files changed, 38 insertions, 81 deletions
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
index d44ad281e9c1..81da8d67fe75 100644
--- 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
@@ -1,25 +1,31 @@
-From 43323a188f17822cc7b26055b70e1e79cd50fc23 Mon Sep 17 00:00:00 2001
-From: "Jason A. Donenfeld" <Jason@zx2c4.com>
-Date: Tue, 13 Sep 2016 04:13:47 +0200
-Subject: [PATCH] cursor model: look for cursors in correct place
+commit fa473a1c4572ef3c2614318b0ce7090613878005
+Author: Jason A. Donenfeld <Jason@zx2c4.com>
+Date: Tue Sep 13 04:13:47 2016 +0200
-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(-)
+ 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.
+
+ For reference, please see line 165 of:
+ https://quickgit.kde.org/?p=plasma-desktop.git&a=blob&f=kcms%2Fcursortheme%2Fxcursor%2Fthememodel.cpp
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 07d313c..ee2eed9 100644
+index 07d313c..88f5a47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -54,7 +54,7 @@ ki18n_wrap_ui(kcm_SRCS
+@@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_P
+
+ find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Widgets Test)
+ find_package(KF5 REQUIRED COMPONENTS I18n KIO ConfigWidgets NewStuff Archive KCMUtils IconThemes)
++find_package(X11 REQUIRED)
+
+ include_directories(
+ ${CMAKE_SOURCE_DIR}
+@@ -54,7 +55,7 @@ ki18n_wrap_ui(kcm_SRCS
)
add_library(kcm_kdegtkconfig MODULE ${kcm_SRCS})
target_compile_definitions(kcm_kdegtkconfig PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}")
@@ -29,70 +35,42 @@ index 07d313c..ee2eed9 100644
kcoreaddons_desktop_to_json(kcm_kdegtkconfig kde-gtk-config.desktop)
diff --git a/src/cursorthemesmodel.cpp b/src/cursorthemesmodel.cpp
-index 5238714..2955bd9 100644
+index 5238714..0e58230 100644
--- a/src/cursorthemesmodel.cpp
+++ b/src/cursorthemesmodel.cpp
-@@ -27,9 +27,17 @@
- #include <KIconTheme>
+@@ -24,12 +24,14 @@
+ #include <QDir>
+ #include <QDirIterator>
+ #include <QSet>
+-#include <KIconTheme>
#include <QStandardPaths>
++#include <KIconTheme>
++#include <KShell>
++
++#include <X11/Xcursor/Xcursor.h>
-CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
-+#include <X11/Xlib.h>
-+#include <X11/Xcursor/Xcursor.h>
-+
-+// 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)
+@@ -37,13 +39,11 @@ CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
QList<QDir> CursorThemesModel::installedThemesPaths()
{
QList<QDir> 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");
++ QStringList dirs(QString(XcursorLibraryPath()).split(':', QString::SkipEmptyParts));
+
-+ // 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
++ std::transform(dirs.begin(), dirs.end(), dirs.begin(), KShell::tildeExpand);
++ dirs.removeDuplicates();
- QSet<QString> 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);
@@ -129,24 +107,3 @@ index 7afe698..d36c6a3 100644
ui->cb_cursor->setModel(m_cursorsModel);
m_iconsModel = new IconThemesModel(false, this);
ui->cb_icon->setModel(m_iconsModel);
---
-2.10.0
-
-commit ab7c3c13721466cdf0236732bdb9f4a1f50db89c
-Author: Jason A. Donenfeld <Jason@zx2c4.com>
-Date: Tue Sep 13 04:23:46 2016 +0200
-
- cmake: find x11 libs
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ee2eed9..14ce086 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_P
-
- find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Widgets Test)
- find_package(KF5 REQUIRED COMPONENTS I18n KIO ConfigWidgets NewStuff Archive KCMUtils IconThemes)
-+find_package(X11)
-
- include_directories(
- ${CMAKE_SOURCE_DIR}