summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/gtk.scm3
-rw-r--r--gnu/packages/patches/gtk2-theme-paths.patch41
3 files changed, 44 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 0c24c05d15..02c7374569 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -513,6 +513,7 @@ dist_patch_DATA = \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/guile-rsvg-pkgconfig.patch \
gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
+ gnu/packages/patches/gtk2-theme-paths.patch \
gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 23e015eace..f31a510504 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -557,7 +557,8 @@ is part of the GNOME accessibility project.")
(sha256
(base32
"0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
- (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"))))
+ (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
+ "gtk2-theme-paths.patch"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
diff --git a/gnu/packages/patches/gtk2-theme-paths.patch b/gnu/packages/patches/gtk2-theme-paths.patch
new file mode 100644
index 0000000000..6c1351e516
--- /dev/null
+++ b/gnu/packages/patches/gtk2-theme-paths.patch
@@ -0,0 +1,41 @@
+From: Jookia <166291@gmail.com>
+Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles.
+To: guix-devel@gnu.org
+Date: Sun, 13 Mar 2016 15:17:37 +1100
+Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html
+
+diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c
+--- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100
++++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100
+@@ -808,6 +808,8 @@
+ gchar *path = NULL;
+ const gchar *home_dir;
+ gchar *subpath;
++ const gchar * const *xdg_data_dirs;
++ gint i;
+
+ if (type)
+ subpath = g_strconcat ("gtk-2.0-", type,
+@@ -830,6 +832,22 @@
+ }
+
+ if (!path)
++ {
++ xdg_data_dirs = g_get_system_data_dirs ();
++ for (i = 0; xdg_data_dirs[i]; i++)
++ {
++ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL);
++ if (g_file_test (path, G_FILE_TEST_EXISTS))
++ break;
++ else
++ {
++ g_free (path);
++ path = NULL;
++ }
++ }
++ }
++
++ if (!path)
+ {
+ gchar *theme_dir = gtk_rc_get_theme_dir ();
+ path = g_build_filename (theme_dir, name, subpath, NULL);