diff options
10 files changed, 488 insertions, 0 deletions
diff --git a/meta/packages/gtk+/gtk+-2.16.4/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch b/meta/packages/gtk+/gtk+-2.16.4/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch new file mode 100644 index 0000000000..e0d6ab9522 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 69b9441eab2a7215509687dc22b48b6f212d22aa Mon Sep 17 00:00:00 2001 | ||
2 | From: Rob Bradford <rob@linux.intel.com> | ||
3 | Date: Thu, 4 Jun 2009 15:43:20 +0100 | ||
4 | Subject: [PATCH] =?utf-8?q?bgo#584832=20=E2=80=93=20Duplicate=20the=20exec=20string=20returned=20by=20gtk=5Frecent=5Finfo=5Fget=5Fapplication=5Finfo?= | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=utf-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | This function states that the caller is responsible for freeing the string | ||
10 | passed returned by reference. Unfortunately if you do this you get a crash | ||
11 | since the internal value is returned without being duplicated. | ||
12 | --- | ||
13 | gtk/gtkrecentmanager.c | 2 +- | ||
14 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
15 | |||
16 | diff --git a/gtk/gtkrecentmanager.c b/gtk/gtkrecentmanager.c | ||
17 | index 317b3d5..d062572 100644 | ||
18 | --- a/gtk/gtkrecentmanager.c | ||
19 | +++ b/gtk/gtkrecentmanager.c | ||
20 | @@ -1764,7 +1764,7 @@ gtk_recent_info_get_application_info (GtkRecentInfo *info, | ||
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; | ||
29 | -- | ||
30 | 1.6.3.1 | ||
31 | |||
diff --git a/meta/packages/gtk+/gtk+-2.16.4/cellrenderer-cairo.patch b/meta/packages/gtk+/gtk+-2.16.4/cellrenderer-cairo.patch new file mode 100644 index 0000000000..4439e69fb6 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/cellrenderer-cairo.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | Index: gtk/gtkcellrenderer.c | ||
2 | =================================================================== | ||
3 | RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderer.c,v | ||
4 | retrieving revision 1.55 | ||
5 | diff -u -r1.55 gtkcellrenderer.c | ||
6 | --- gtk/gtkcellrenderer.c 14 May 2006 04:25:28 -0000 1.55 | ||
7 | +++ gtk/gtkcellrenderer.c 30 Jun 2006 10:57:43 -0000 | ||
8 | @@ -551,6 +551,7 @@ | ||
9 | |||
10 | if (cell->cell_background_set && !selected) | ||
11 | { | ||
12 | +#ifdef USE_CAIRO_INTERNALLY | ||
13 | cairo_t *cr = gdk_cairo_create (window); | ||
14 | |||
15 | gdk_cairo_rectangle (cr, background_area); | ||
16 | @@ -558,6 +559,16 @@ | ||
17 | cairo_fill (cr); | ||
18 | |||
19 | cairo_destroy (cr); | ||
20 | +#else | ||
21 | + GdkGC *gc; | ||
22 | + | ||
23 | + gc = gdk_gc_new (window); | ||
24 | + gdk_gc_set_rgb_fg_color (gc, &priv->cell_background); | ||
25 | + gdk_draw_rectangle (window, gc, TRUE, | ||
26 | + background_area->x, background_area->y, | ||
27 | + background_area->width, background_area->height); | ||
28 | + g_object_unref (gc); | ||
29 | +#endif | ||
30 | } | ||
31 | |||
32 | GTK_CELL_RENDERER_GET_CLASS (cell)->render (cell, | ||
diff --git a/meta/packages/gtk+/gtk+-2.16.4/disable-gio-png-sniff-test.diff b/meta/packages/gtk+/gtk+-2.16.4/disable-gio-png-sniff-test.diff new file mode 100644 index 0000000000..5c64ac04de --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/disable-gio-png-sniff-test.diff | |||
@@ -0,0 +1,97 @@ | |||
1 | Index: gtk+-2.14.2/configure.in | ||
2 | =================================================================== | ||
3 | --- gtk+-2.14.2.orig/configure.in 2008-09-23 16:32:42.000000000 +0100 | ||
4 | +++ gtk+-2.14.2/configure.in 2008-09-23 16:37:13.000000000 +0100 | ||
5 | @@ -1025,48 +1025,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/packages/gtk+/gtk+-2.16.4/entry-cairo.patch b/meta/packages/gtk+/gtk+-2.16.4/entry-cairo.patch new file mode 100644 index 0000000000..3313e7f132 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/entry-cairo.patch | |||
@@ -0,0 +1,103 @@ | |||
1 | Index: gtk/gtkentry.c | ||
2 | =================================================================== | ||
3 | RCS file: /cvs/gnome/gtk+/gtk/gtkentry.c,v | ||
4 | retrieving revision 1.317 | ||
5 | diff -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/packages/gtk+/gtk+-2.16.4/hardcoded_libtool.patch b/meta/packages/gtk+/gtk+-2.16.4/hardcoded_libtool.patch new file mode 100644 index 0000000000..82fbbac8d7 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/hardcoded_libtool.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | Index: gtk+-2.14.2/configure.in | ||
2 | =================================================================== | ||
3 | --- gtk+-2.14.2.orig/configure.in 2008-09-23 15:52:44.000000000 +0100 | ||
4 | +++ gtk+-2.14.2/configure.in 2008-09-23 15:53:51.000000000 +0100 | ||
5 | @@ -401,7 +401,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 | @@ -759,7 +759,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 | @@ -1893,7 +1893,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/packages/gtk+/gtk+-2.16.4/no-demos.patch b/meta/packages/gtk+/gtk+-2.16.4/no-demos.patch new file mode 100644 index 0000000000..0fc4c48d1a --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/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/packages/gtk+/gtk+-2.16.4/run-iconcache.patch b/meta/packages/gtk+/gtk+-2.16.4/run-iconcache.patch new file mode 100644 index 0000000000..ac15e9ab24 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/run-iconcache.patch | |||
@@ -0,0 +1,19 @@ | |||
1 | --- /tmp/Makefile.am 2007-01-08 17:44:47.000000000 +0100 | ||
2 | +++ gtk+-2.10.7/gtk/Makefile.am 2007-01-08 17:45:17.025251000 +0100 | ||
3 | @@ -1128,11 +1128,11 @@ | ||
4 | ./gtk-update-icon-cache | ||
5 | endif | ||
6 | |||
7 | -gtkbuiltincache.h: @REBUILD@ stamp-icons | ||
8 | - $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) | ||
9 | - $(gtk_update_icon_cache_program) --force --ignore-theme-index \ | ||
10 | - --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \ | ||
11 | - mv gtkbuiltincache.h.tmp gtkbuiltincache.h | ||
12 | +#gtkbuiltincache.h: @REBUILD@ stamp-icons | ||
13 | +# $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) | ||
14 | +# $(gtk_update_icon_cache_program) --force --ignore-theme-index \ | ||
15 | +# --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \ | ||
16 | +# mv gtkbuiltincache.h.tmp gtkbuiltincache.h | ||
17 | |||
18 | EXTRA_DIST += \ | ||
19 | $(STOCK_ICONS) \ | ||
diff --git a/meta/packages/gtk+/gtk+-2.16.4/toggle-font.diff b/meta/packages/gtk+/gtk+-2.16.4/toggle-font.diff new file mode 100644 index 0000000000..59ad150b2f --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/toggle-font.diff | |||
@@ -0,0 +1,100 @@ | |||
1 | Index: gtk/gtkcellrenderertoggle.c | ||
2 | =================================================================== | ||
3 | --- gtk/gtkcellrenderertoggle.c (revision 18523) | ||
4 | +++ gtk/gtkcellrenderertoggle.c (working copy) | ||
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/packages/gtk+/gtk+-2.16.4/xsettings.patch b/meta/packages/gtk+/gtk+-2.16.4/xsettings.patch new file mode 100644 index 0000000000..b63e262d34 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.16.4/xsettings.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | --- gtk+-2.4.4/gdk/x11/gdkevents-x11.c.old Sun Aug 22 17:14:00 2004 | ||
2 | +++ gtk+-2.4.4/gdk/x11/gdkevents-x11.c Sun Aug 22 17:14:00 2004 | ||
3 | @@ -2827,10 +2827,9 @@ | ||
4 | { | ||
5 | GdkScreenX11 *screen = data; | ||
6 | |||
7 | - if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent)) | ||
8 | - return GDK_FILTER_REMOVE; | ||
9 | - else | ||
10 | - return GDK_FILTER_CONTINUE; | ||
11 | + xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent); | ||
12 | + | ||
13 | + return GDK_FILTER_CONTINUE; | ||
14 | } | ||
15 | |||
16 | static void | ||
diff --git a/meta/packages/gtk+/gtk+_2.16.4.bb b/meta/packages/gtk+/gtk+_2.16.4.bb new file mode 100644 index 0000000000..de10b1e1fe --- /dev/null +++ b/meta/packages/gtk+/gtk+_2.16.4.bb | |||
@@ -0,0 +1,49 @@ | |||
1 | require gtk+.inc | ||
2 | |||
3 | PR = "r4" | ||
4 | |||
5 | SRC_URI = "http://download.gnome.org/sources/gtk+/2.16/gtk+-${PV}.tar.bz2 \ | ||
6 | file://xsettings.patch;patch=1 \ | ||
7 | file://run-iconcache.patch;patch=1 \ | ||
8 | file://hardcoded_libtool.patch;patch=1 \ | ||
9 | file://no-demos.patch;patch=1 \ | ||
10 | file://cellrenderer-cairo.patch;patch=1;pnum=0 \ | ||
11 | file://toggle-font.diff;patch=1;pnum=0 \ | ||
12 | file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch;patch=1 \ | ||
13 | # TO MERGE | ||
14 | # file://entry-cairo.patch;patch=1;pnum=0 \ | ||
15 | # file://filesystem-volumes.patch;patch=1 \ | ||
16 | # file://filechooser-props.patch;patch=1 \ | ||
17 | # file://filechooser-default.patch;patch=1 \ | ||
18 | # file://filechooser-sizefix.patch;patch=1 \ | ||
19 | # temporary | ||
20 | # file://gtklabel-resize-patch;patch=1 \ | ||
21 | # file://menu-deactivate.patch;patch=1 \ | ||
22 | # file://combo-arrow-size.patch;patch=1;pnum=0 \ | ||
23 | file://disable-gio-png-sniff-test.diff;patch=1 \ | ||
24 | " | ||
25 | |||
26 | EXTRA_OECONF = "--without-libtiff --without-libjasper --disable-xkb --disable-glibtest --disable-cups" | ||
27 | |||
28 | LIBV = "2.10.0" | ||
29 | |||
30 | PACKAGES_DYNAMIC += "gdk-pixbuf-loader-* gtk-immodule-* gtk-printbackend-*" | ||
31 | |||
32 | python populate_packages_prepend () { | ||
33 | import os.path | ||
34 | |||
35 | prologue = bb.data.getVar("postinst_prologue", d, 1) | ||
36 | postinst_pixbufloader = bb.data.getVar("postinst_pixbufloader", d, 1) | ||
37 | |||
38 | gtk_libdir = bb.data.expand('${libdir}/gtk-2.0/${LIBV}', d) | ||
39 | loaders_root = os.path.join(gtk_libdir, 'loaders') | ||
40 | immodules_root = os.path.join(gtk_libdir, 'immodules') | ||
41 | printmodules_root = os.path.join(gtk_libdir, 'printbackends'); | ||
42 | |||
43 | do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s', postinst_pixbufloader) | ||
44 | do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s', prologue + 'gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules') | ||
45 | do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s') | ||
46 | |||
47 | if (bb.data.getVar('DEBIAN_NAMES', d, 1)): | ||
48 | bb.data.setVar('PKG_${PN}', 'libgtk-2.0', d) | ||
49 | } | ||