summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome/gtk+/gtk+-2.20.1
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-gnome/gtk+/gtk+-2.20.1')
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch28
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/cellrenderer-cairo.patch29
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/configurefix.patch85
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/disable-gio-png-sniff-test.diff97
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/entry-cairo.patch103
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/hardcoded_libtool.patch31
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/no-demos.patch10
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/run-iconcache.patch21
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/toggle-font.diff100
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.20.1/xsettings.patch18
10 files changed, 522 insertions, 0 deletions
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch
new file mode 100644
index 0000000000..ee55f9cc3b
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch
@@ -0,0 +1,28 @@
1From 69b9441eab2a7215509687dc22b48b6f212d22aa Mon Sep 17 00:00:00 2001
2From: Rob Bradford <rob@linux.intel.com>
3Date: Thu, 4 Jun 2009 15:43:20 +0100
4Subject: [PATCH] =?utf-8?q?bgo#584832=20=E2=80=93=20Duplicate=20the=20exec=20string=20returned=20by=20gtk=5Frecent=5Finfo=5Fget=5Fapplication=5Finfo?=
5MIME-Version: 1.0
6Content-Type: text/plain; charset=utf-8
7Content-Transfer-Encoding: 8bit
8
9This function states that the caller is responsible for freeing the string
10passed returned by reference. Unfortunately if you do this you get a crash
11since the internal value is returned without being duplicated.
12---
13 gtk/gtkrecentmanager.c | 2 +-
14 1 files changed, 1 insertions(+), 1 deletions(-)
15
16Index: gtk+-2.21.2/gtk/gtkrecentmanager.c
17===================================================================
18--- gtk+-2.21.2.orig/gtk/gtkrecentmanager.c 2010-06-22 18:11:30.000000000 +0800
19+++ gtk+-2.21.2/gtk/gtkrecentmanager.c 2010-06-22 18:11:53.000000000 +0800
20@@ -1766,7 +1766,7 @@
21 }
22
23 if (app_exec)
24- *app_exec = ai->exec;
25+ *app_exec = g_strdup (ai->exec);
26
27 if (count)
28 *count = ai->count;
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/cellrenderer-cairo.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/cellrenderer-cairo.patch
new file mode 100644
index 0000000000..92ce643125
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/cellrenderer-cairo.patch
@@ -0,0 +1,29 @@
1Index: gtk/gtkcellrenderer.c
2===================================================================
3--- gtk/gtkcellrenderer.c.orig 2010-06-22 17:21:22.000000000 +0800
4+++ gtk/gtkcellrenderer.c 2010-06-22 17:21:25.000000000 +0800
5@@ -566,6 +566,7 @@
6
7 if (cell->cell_background_set && !selected)
8 {
9+#ifdef USE_CAIRO_INTERNALLY
10 cairo_t *cr = gdk_cairo_create (window);
11
12 gdk_cairo_rectangle (cr, background_area);
13@@ -573,6 +574,16 @@
14 cairo_fill (cr);
15
16 cairo_destroy (cr);
17+#else
18+ GdkGC *gc;
19+
20+ gc = gdk_gc_new (window);
21+ gdk_gc_set_rgb_fg_color (gc, &priv->cell_background);
22+ gdk_draw_rectangle (window, gc, TRUE,
23+ background_area->x, background_area->y,
24+ background_area->width, background_area->height);
25+ g_object_unref (gc);
26+#endif
27 }
28
29 GTK_CELL_RENDERER_GET_CLASS (cell)->render (cell,
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/configurefix.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/configurefix.patch
new file mode 100644
index 0000000000..7f6c73be49
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/configurefix.patch
@@ -0,0 +1,85 @@
1Index: gtk+-2.21.2/docs/faq/Makefile.am
2===================================================================
3--- gtk+-2.21.2.orig/docs/faq/Makefile.am 2010-04-09 10:29:53.000000000 +0800
4+++ gtk+-2.21.2/docs/faq/Makefile.am 2010-06-22 17:39:24.000000000 +0800
5@@ -3,34 +3,36 @@
6 EXTRA_DIST += \
7 gtk-faq.sgml
8
9-if HAVE_DOCBOOK
10+
11 html:
12+if HAVE_DOCBOOK
13 if test -w $(srcdir); then \
14 (cd $(srcdir); \
15 db2html gtk-faq.sgml; \
16 test -d html && rm -r html; \
17 mv gtk-faq html); \
18 fi
19-
20-pdf:
21- if test -w $(srcdir); then \
22- (cd $(srcdir); db2pdf gtk-faq.sgml); \
23- fi
24-
25-dist-hook: html
26- cp -Rp $(srcdir)/html $(distdir)
27 else
28-html:
29 echo "***"
30 echo "*** Warning: FAQ not built"
31 echo "***"
32+endif
33
34 pdf:
35+if HAVE_DOCBOOK
36+ if test -w $(srcdir); then \
37+ (cd $(srcdir); db2pdf gtk-faq.sgml); \
38+ fi
39+else
40 echo "***"
41 echo "*** Warning: FAQ not built"
42 echo "***"
43+endif
44
45-dist-hook:
46+dist-hook: html
47+if HAVE_DOCBOOK
48+ cp -Rp $(srcdir)/html $(distdir)
49+else
50 echo "***"
51 echo "*** Warning: FAQ not built"
52 echo "*** DISTRIBUTION IS INCOMPLETE"
53Index: gtk+-2.21.2/gtk-doc.make
54===================================================================
55--- gtk+-2.21.2.orig/gtk-doc.make 2010-05-28 00:01:48.000000000 +0800
56+++ gtk+-2.21.2/gtk-doc.make 2010-06-22 17:39:24.000000000 +0800
57@@ -23,7 +23,7 @@
58
59 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
60
61-EXTRA_DIST = \
62+EXTRA_DIST += \
63 $(content_files) \
64 $(HTML_IMAGES) \
65 $(DOC_MAIN_SGML_FILE) \
66Index: gtk+-2.21.2/gtk/tests/Makefile.am
67===================================================================
68--- gtk+-2.21.2.orig/gtk/tests/Makefile.am 2010-06-10 20:53:46.000000000 +0800
69+++ gtk+-2.21.2/gtk/tests/Makefile.am 2010-06-22 17:39:24.000000000 +0800
70@@ -58,13 +58,13 @@
71 # this doesn't work in make distcheck, since running
72 # on a naked X server creates slightly different event
73 # sequences than running on a normal desktop
74-# TEST_PROGS += crossingevents
75+#TEST_PROGS += crossingevents
76 crossingevents_SOURCES = crossingevents.c
77 crossingevents_LDADD = $(progs_ldadd)
78
79 # this doesn't work in make distcheck, since it doesn't
80 # find file-chooser-test-dir
81-# TEST_PROGS += filechooser
82+#TEST_PROGS += filechooser
83 filechooser_SOURCES = filechooser.c pixbuf-init.c
84 filechooser_LDADD = $(progs_ldadd)
85
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/disable-gio-png-sniff-test.diff b/meta/recipes-gnome/gtk+/gtk+-2.20.1/disable-gio-png-sniff-test.diff
new file mode 100644
index 0000000000..13ae61ef88
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/disable-gio-png-sniff-test.diff
@@ -0,0 +1,97 @@
1Index: gtk+-2.21.2/configure.in
2===================================================================
3--- gtk+-2.21.2.orig/configure.in 2010-06-22 18:14:40.000000000 +0800
4+++ gtk+-2.21.2/configure.in 2010-06-22 18:14:58.000000000 +0800
5@@ -1072,48 +1072,50 @@
6 # check one of the variables here
7 AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
8
9-if test x$gio_can_sniff = x; then
10- AC_MSG_CHECKING([if gio can sniff png])
11- gtk_save_LIBS="$LIBS"
12- gtk_save_CFLAGS="$CFLAGS"
13- LIBS="`$PKG_CONFIG --libs gio-2.0`"
14- CFLAGS="`$PKG_CONFIG --cflags gio-2.0`"
15- AC_RUN_IFELSE([AC_LANG_SOURCE([[
16- #include <gio/gio.h>
17- static const gsize data_size = 159;
18- static const guint8 data[] =
19- {
20- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
21- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
22- 0x08, 0x02, 0x00, 0x00, 0x00, 0x90, 0x77, 0x53, 0xde, 0x00, 0x00, 0x00,
23- 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
24- 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00,
25- 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74,
26- 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x07, 0x0f, 0x10, 0x08, 0x15, 0x61, 0xd8,
27- 0x35, 0x37, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f,
28- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
29- 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x57,
30- 0x81, 0x0e, 0x17, 0x00, 0x00, 0x00, 0x0c, 0x49, 0x44, 0x41, 0x54, 0x08,
31- 0xd7, 0x63, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x05, 0xfe, 0x02, 0xfe, 0xdc,
32- 0xcc, 0x59, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
33- 0x42, 0x60, 0x82
34- };
35- int
36- main (int argc, char **argv)
37- {
38- char *content_type;
39- char *image_png;
40- content_type = g_content_type_guess (NULL, data, data_size, NULL);
41- image_png = g_content_type_from_mime_type ("image/png");
42- return !!strcmp (content_type, image_png);
43- }]])],
44- [gio_can_sniff=yes
45- AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data])],
46- [gio_can_sniff=no])
47- AC_MSG_RESULT($gio_can_sniff)
48- LIBS="$gtk_save_LIBS"
49- CFLAGS="$gtk_save_CFLAGS"
50-fi
51+# Disabled due to cross-compile
52+#if test x$gio_can_sniff = x; then
53+# AC_MSG_CHECKING([if gio can sniff png])
54+# gtk_save_LIBS="$LIBS"
55+# gtk_save_CFLAGS="$CFLAGS"
56+# LIBS="`$PKG_CONFIG --libs gio-2.0`"
57+# CFLAGS="`$PKG_CONFIG --cflags gio-2.0`"
58+# AC_RUN_IFELSE([AC_LANG_SOURCE([[
59+# #include <gio/gio.h>
60+# static const gsize data_size = 159;
61+# static const guint8 data[] =
62+# {
63+# 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
64+# 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
65+# 0x08, 0x02, 0x00, 0x00, 0x00, 0x90, 0x77, 0x53, 0xde, 0x00, 0x00, 0x00,
66+# 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
67+# 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00,
68+# 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74,
69+# 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x07, 0x0f, 0x10, 0x08, 0x15, 0x61, 0xd8,
70+# 0x35, 0x37, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f,
71+# 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
72+# 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x57,
73+# 0x81, 0x0e, 0x17, 0x00, 0x00, 0x00, 0x0c, 0x49, 0x44, 0x41, 0x54, 0x08,
74+# 0xd7, 0x63, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x05, 0xfe, 0x02, 0xfe, 0xdc,
75+# 0xcc, 0x59, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
76+# 0x42, 0x60, 0x82
77+# };
78+# int
79+# main (int argc, char **argv)
80+# {
81+# char *content_type;
82+# char *image_png;
83+# content_type = g_content_type_guess (NULL, data, data_size, NULL);
84+# image_png = g_content_type_from_mime_type ("image/png");
85+# return !!strcmp (content_type, image_png);
86+# }]])],
87+# [gio_can_sniff=yes
88+# [gio_can_sniff=no])
89+# AC_MSG_RESULT($gio_can_sniff)
90+# LIBS="$gtk_save_LIBS"
91+# CFLAGS="$gtk_save_CFLAGS"
92+#fi
93+
94+AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data])],
95
96 #
97 # Allow building some or all immodules included
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/entry-cairo.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/entry-cairo.patch
new file mode 100644
index 0000000000..3313e7f132
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/entry-cairo.patch
@@ -0,0 +1,103 @@
1Index: gtk/gtkentry.c
2===================================================================
3RCS file: /cvs/gnome/gtk+/gtk/gtkentry.c,v
4retrieving revision 1.317
5diff -u -r1.317 gtkentry.c
6--- gtk/gtkentry.c 29 Jun 2006 09:18:05 -0000 1.317
7+++ gtk/gtkentry.c 2 Jul 2006 14:14:24 -0000
8@@ -3337,7 +3337,9 @@
9 if (GTK_WIDGET_DRAWABLE (entry))
10 {
11 PangoLayout *layout = gtk_entry_ensure_layout (entry, TRUE);
12+#ifdef USE_CAIRO_INTERNALLY
13 cairo_t *cr;
14+#endif
15 gint x, y;
16 gint start_pos, end_pos;
17
18@@ -3345,23 +3347,35 @@
19
20 get_layout_position (entry, &x, &y);
21
22+#ifdef USE_CAIRO_INTERNALLY
23 cr = gdk_cairo_create (entry->text_area);
24
25 cairo_move_to (cr, x, y);
26 gdk_cairo_set_source_color (cr, &widget->style->text [widget->state]);
27 pango_cairo_show_layout (cr, layout);
28+#else
29+ gdk_draw_layout (entry->text_area, widget->style->text_gc [widget->state],
30+ x, y,
31+ layout);
32+#endif
33
34 if (gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &start_pos, &end_pos))
35 {
36 gint *ranges;
37 gint n_ranges, i;
38 PangoRectangle logical_rect;
39- GdkColor *selection_color, *text_color;
40 GtkBorder inner_border;
41+#ifdef USE_CAIRO_INTERNALLY
42+ GdkColor *selection_color, *text_color;
43+#else
44+ GdkGC *selection_gc, *text_gc;
45+ GdkRegion *clip_region;
46+#endif
47
48 pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
49 gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges);
50
51+#ifdef USE_CAIRO_INTERNALLY
52 if (GTK_WIDGET_HAS_FOCUS (entry))
53 {
54 selection_color = &widget->style->base [GTK_STATE_SELECTED];
55@@ -3390,11 +3404,46 @@
56 cairo_move_to (cr, x, y);
57 gdk_cairo_set_source_color (cr, text_color);
58 pango_cairo_show_layout (cr, layout);
59-
60+#else
61+ if (GTK_WIDGET_HAS_FOCUS (entry))
62+ {
63+ selection_gc = widget->style->base_gc [GTK_STATE_SELECTED];
64+ text_gc = widget->style->text_gc [GTK_STATE_SELECTED];
65+ }
66+ else
67+ {
68+ selection_gc = widget->style->base_gc [GTK_STATE_ACTIVE];
69+ text_gc = widget->style->text_gc [GTK_STATE_ACTIVE];
70+ }
71+
72+ clip_region = gdk_region_new ();
73+ for (i = 0; i < n_ranges; ++i)
74+ {
75+ GdkRectangle rect;
76+
77+ rect.x = inner_border.left - entry->scroll_offset + ranges[2 * i];
78+ rect.y = y;
79+ rect.width = ranges[2 * i + 1];
80+ rect.height = logical_rect.height;
81+
82+ gdk_draw_rectangle (entry->text_area, selection_gc, TRUE,
83+ rect.x, rect.y, rect.width, rect.height);
84+
85+ gdk_region_union_with_rect (clip_region, &rect);
86+ }
87+
88+ gdk_gc_set_clip_region (text_gc, clip_region);
89+ gdk_draw_layout (entry->text_area, text_gc,
90+ x, y,
91+ layout);
92+ gdk_gc_set_clip_region (text_gc, NULL);
93+ gdk_region_destroy (clip_region);
94+#endif
95 g_free (ranges);
96 }
97-
98+#ifdef USE_CAIRO_INTERNALLY
99 cairo_destroy (cr);
100+#endif
101 }
102 }
103
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/hardcoded_libtool.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/hardcoded_libtool.patch
new file mode 100644
index 0000000000..66be74475b
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/hardcoded_libtool.patch
@@ -0,0 +1,31 @@
1Index: gtk+-2.21.2/configure.in
2===================================================================
3--- gtk+-2.21.2.orig/configure.in 2010-06-22 17:21:41.000000000 +0800
4+++ gtk+-2.21.2/configure.in 2010-06-22 17:28:59.000000000 +0800
5@@ -425,7 +425,7 @@
6 case $enable_explicit_deps in
7 auto)
8 export SED
9- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
10+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
11 if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
12 enable_explicit_deps=yes
13 else
14@@ -804,7 +804,7 @@
15 dnl Now we check to see if our libtool supports shared lib deps
16 dnl (in a rather ugly way even)
17 if $dynworks; then
18- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
19+ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config"
20 pixbuf_deplibs_check=`$pixbuf_libtool_config | \
21 grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
22 sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
23@@ -1974,7 +1974,7 @@
24 # We are using gmodule-no-export now, but I'm leaving the stripping
25 # code in place for now, since pango and atk still require gmodule.
26 export SED
27-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
28+export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
29 if test -n "$export_dynamic"; then
30 GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
31 GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/no-demos.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/no-demos.patch
new file mode 100644
index 0000000000..0fc4c48d1a
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/no-demos.patch
@@ -0,0 +1,10 @@
1--- gtk+-2.10.1/Makefile.am.orig 2006-08-08 12:37:30.000000000 +0100
2+++ gtk+-2.10.1/Makefile.am 2006-08-08 12:37:48.000000000 +0100
3@@ -1,6 +1,6 @@
4 ## Makefile.am for GTK+
5
6-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
7+SRC_SUBDIRS = gdk-pixbuf gdk gtk modules tests perf contrib
8 SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
9
10 # require automake 1.4
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/run-iconcache.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/run-iconcache.patch
new file mode 100644
index 0000000000..518875e6fd
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/run-iconcache.patch
@@ -0,0 +1,21 @@
1Index: gtk+-2.21.2/gtk/Makefile.am
2===================================================================
3--- gtk+-2.21.2.orig/gtk/Makefile.am 2010-06-22 17:21:41.000000000 +0800
4+++ gtk+-2.21.2/gtk/Makefile.am 2010-06-22 17:28:12.000000000 +0800
5@@ -1376,11 +1376,11 @@
6 ./gtk-update-icon-cache
7 endif
8
9-gtkbuiltincache.h: @REBUILD@ stamp-icons
10- $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
11- $(gtk_update_icon_cache_program) --force --ignore-theme-index \
12- --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
13- mv gtkbuiltincache.h.tmp gtkbuiltincache.h
14+#gtkbuiltincache.h: @REBUILD@ stamp-icons
15+# $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
16+# $(gtk_update_icon_cache_program) --force --ignore-theme-index \
17+# --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
18+# mv gtkbuiltincache.h.tmp gtkbuiltincache.h
19
20 EXTRA_DIST += \
21 $(STOCK_ICONS) \
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/toggle-font.diff b/meta/recipes-gnome/gtk+/gtk+-2.20.1/toggle-font.diff
new file mode 100644
index 0000000000..4853628c82
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/toggle-font.diff
@@ -0,0 +1,100 @@
1Index: gtk/gtkcellrenderertoggle.c
2===================================================================
3--- gtk/gtkcellrenderertoggle.c.orig 2010-06-22 18:11:33.000000000 +0800
4+++ gtk/gtkcellrenderertoggle.c 2010-06-22 18:11:43.000000000 +0800
5@@ -71,6 +71,8 @@
6 PROP_INDICATOR_SIZE
7 };
8
9+/* This is a hard-coded default which promptly gets overridden by a size
10+ calculated from the font size. */
11 #define TOGGLE_WIDTH 13
12
13 static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
14@@ -80,8 +82,9 @@
15 typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate;
16 struct _GtkCellRendererTogglePrivate
17 {
18- gint indicator_size;
19-
20+ gint indicator_size; /* This is the real size */
21+ gint override_size; /* This is the size set from the indicator-size property */
22+ GtkWidget *cached_widget;
23 guint inconsistent : 1;
24 };
25
26@@ -104,6 +107,7 @@
27 GTK_CELL_RENDERER (celltoggle)->ypad = 2;
28
29 priv->indicator_size = TOGGLE_WIDTH;
30+ priv->override_size = 0;
31 priv->inconsistent = FALSE;
32 }
33
34@@ -210,7 +214,7 @@
35 g_value_set_boolean (value, celltoggle->radio);
36 break;
37 case PROP_INDICATOR_SIZE:
38- g_value_set_int (value, priv->indicator_size);
39+ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size);
40 break;
41 default:
42 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
43@@ -245,7 +249,7 @@
44 celltoggle->radio = g_value_get_boolean (value);
45 break;
46 case PROP_INDICATOR_SIZE:
47- priv->indicator_size = g_value_get_int (value);
48+ priv->override_size = g_value_get_int (value);
49 break;
50 default:
51 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
52@@ -273,6 +277,27 @@
53 }
54
55 static void
56+on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data)
57+{
58+ GtkCellRendererTogglePrivate *priv = user_data;
59+ PangoContext *context;
60+ PangoFontMetrics *metrics;
61+ int height;
62+
63+ context = gtk_widget_get_pango_context (widget);
64+ metrics = pango_context_get_metrics (context,
65+ widget->style->font_desc,
66+ pango_context_get_language (context));
67+
68+ height = pango_font_metrics_get_ascent (metrics) +
69+ pango_font_metrics_get_descent (metrics);
70+
71+ pango_font_metrics_unref (metrics);
72+
73+ priv->indicator_size = PANGO_PIXELS (height * 0.85);
74+}
75+
76+static void
77 gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
78 GtkWidget *widget,
79 GdkRectangle *cell_area,
80@@ -287,6 +312,20 @@
81
82 priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell);
83
84+ if (priv->override_size) {
85+ priv->indicator_size = priv->override_size;
86+ } else if (priv->cached_widget != widget) {
87+ if (priv->cached_widget) {
88+ g_object_remove_weak_pointer (widget, &priv->cached_widget);
89+ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv);
90+ }
91+ priv->cached_widget = widget;
92+ g_object_add_weak_pointer (widget, &priv->cached_widget);
93+ g_signal_connect (widget, "style-set", on_widget_style_set, priv);
94+
95+ on_widget_style_set (widget, NULL, priv);
96+ }
97+
98 calc_width = (gint) cell->xpad * 2 + priv->indicator_size;
99 calc_height = (gint) cell->ypad * 2 + priv->indicator_size;
100
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.20.1/xsettings.patch b/meta/recipes-gnome/gtk+/gtk+-2.20.1/xsettings.patch
new file mode 100644
index 0000000000..84231e9b91
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+-2.20.1/xsettings.patch
@@ -0,0 +1,18 @@
1Index: gtk+-2.21.2/gdk/x11/gdkevents-x11.c
2===================================================================
3--- gtk+-2.21.2.orig/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:04.000000000 +0800
4+++ gtk+-2.21.2/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:06.000000000 +0800
5@@ -3062,10 +3062,9 @@
6 {
7 GdkScreenX11 *screen = data;
8
9- if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent))
10- return GDK_FILTER_REMOVE;
11- else
12- return GDK_FILTER_CONTINUE;
13+ xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent);
14+
15+ return GDK_FILTER_CONTINUE;
16 }
17
18 static Bool