summary refs log tree commit diff
path: root/gnu/packages/patches/gtk2-theme-paths.patch
diff options
context:
space:
mode:
authorJookia <166291@gmail.com>2016-04-06 21:00:58 +0800
committerLudovic Courtès <ludo@gnu.org>2016-04-16 11:46:50 +0200
commitdbc3860cebfd52137809e543b08245e878fb636a (patch)
tree455889890df2c065b9cda9d6f243e1c67a35c58b /gnu/packages/patches/gtk2-theme-paths.patch
parent2f52438403aa711e20d53b72a4ff5ee459d42bb0 (diff)
downloadguix-dbc3860cebfd52137809e543b08245e878fb636a.tar.gz
gnu: gtk+-2: Look in system data dirs for themes.
* gnu/packages/patches/gtk2-theme-paths.patch: New patch.
* gnu/packages/gtk.scm (gtk+-2)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.

Signed-off-by: 宋文武 <iyzsong@gmail.com>
Diffstat (limited to 'gnu/packages/patches/gtk2-theme-paths.patch')
-rw-r--r--gnu/packages/patches/gtk2-theme-paths.patch41
1 files changed, 41 insertions, 0 deletions
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);