summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorn Baayen <jorn@openedhand.com>2006-07-20 10:57:12 +0000
committerJorn Baayen <jorn@openedhand.com>2006-07-20 10:57:12 +0000
commit35fa11f1b5efea78225beb3c9b2e1c6e7ea240dc (patch)
treecd919db50bc0648cb9afdeff4271cfb0b63a7da5
parent36a71a9c620e4a9510725af3a9e731e6529f744c (diff)
downloadopenembedded-core-35fa11f1b5efea78225beb3c9b2e1c6e7ea240dc.tar.gz
openembedded-core-35fa11f1b5efea78225beb3c9b2e1c6e7ea240dc.tar.bz2
openembedded-core-35fa11f1b5efea78225beb3c9b2e1c6e7ea240dc.zip
Added GTK+ 2.10.0 + decairofication patches
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@519 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/automake-lossage.patch24
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/cellrenderer-cairo.patch32
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/disable-tooltips.patch11
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/entry-cairo.patch114
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/gtk+-handhelds.patch264
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/gtklabel-resize-patch10
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/gtktreeview-316689.patch25
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/hardcoded_libtool.patch29
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/menu-deactivate.patch50
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/no-demos.patch10
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/no-xwc.patch179
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/scroll-timings.patch15
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/single-click.patch36
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/small-gtkfilesel.patch267
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/spinbutton.patch128
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/style-cairo.patch2193
-rw-r--r--openembedded/packages/gtk+/gtk+-2.10.0/xsettings.patch16
-rw-r--r--openembedded/packages/gtk+/gtk+_2.10.0.bb89
18 files changed, 3492 insertions, 0 deletions
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/automake-lossage.patch b/openembedded/packages/gtk+/gtk+-2.10.0/automake-lossage.patch
new file mode 100644
index 0000000000..0d423ddbb9
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/automake-lossage.patch
@@ -0,0 +1,24 @@
+--- gtk+-2.4.1/docs/tutorial/Makefile.am~ 2003-05-06 22:54:20.000000000 +0100
++++ gtk+-2.4.1/docs/tutorial/Makefile.am 2004-05-08 12:31:41.000000000 +0100
+@@ -52,21 +52,5 @@
+
+ dist-hook: html
+ cp -Rp $(srcdir)/html $(distdir)
+-else
+-html:
+- echo "***"
+- echo "*** Warning: Tutorial not built"
+- echo "***"
+-
+-pdf:
+- echo "***"
+- echo "*** Warning: Tutorial not built"
+- echo "***"
+-
+-dist-hook:
+- echo "***"
+- echo "*** Warning: Tutorial not built"
+- echo "*** DISTRIBUTION IS INCOMPLETE"
+- echo "***"
+ endif
+
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/cellrenderer-cairo.patch b/openembedded/packages/gtk+/gtk+-2.10.0/cellrenderer-cairo.patch
new file mode 100644
index 0000000000..020f35bb85
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/cellrenderer-cairo.patch
@@ -0,0 +1,32 @@
+Index: gtkcellrenderer.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderer.c,v
+retrieving revision 1.55
+diff -u -r1.55 gtk+-2.10.0/gtk/gtkcellrenderer.c
+--- gtk+-2.10.0/gtk/gtkcellrenderer.c 14 May 2006 04:25:28 -0000 1.55
++++ gtk+-2.10.0/gtk/gtkcellrenderer.c 30 Jun 2006 10:57:43 -0000
+@@ -551,6 +551,7 @@
+
+ if (cell->cell_background_set && !selected)
+ {
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_t *cr = gdk_cairo_create (window);
+
+ gdk_cairo_rectangle (cr, background_area);
+@@ -558,6 +559,16 @@
+ cairo_fill (cr);
+
+ cairo_destroy (cr);
++#else
++ GdkGC *gc;
++
++ gc = gdk_gc_new (window);
++ gdk_gc_set_rgb_fg_color (gc, &priv->cell_background);
++ gdk_draw_rectangle (window, gc, TRUE,
++ background_area->x, background_area->y,
++ background_area->width, background_area->height);
++ g_object_unref (gc);
++#endif
+ }
+
+ GTK_CELL_RENDERER_GET_CLASS (cell)->render (cell,
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/disable-tooltips.patch b/openembedded/packages/gtk+/gtk+-2.10.0/disable-tooltips.patch
new file mode 100644
index 0000000000..d71d839c3c
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/disable-tooltips.patch
@@ -0,0 +1,11 @@
+--- gtk+-2.4.3/gtk/gtktooltips.c.old 2004-07-04 18:52:04.000000000 +0100
++++ gtk+-2.4.3/gtk/gtktooltips.c 2004-07-04 18:52:08.000000000 +0100
+@@ -118,7 +118,7 @@
+ tooltips->tips_data_list = NULL;
+
+ tooltips->delay = DEFAULT_DELAY;
+- tooltips->enabled = TRUE;
++ tooltips->enabled = FALSE;
+ tooltips->timer_tag = 0;
+ tooltips->use_sticky_delay = FALSE;
+ tooltips->last_popdown.tv_sec = -1;
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/entry-cairo.patch b/openembedded/packages/gtk+/gtk+-2.10.0/entry-cairo.patch
new file mode 100644
index 0000000000..506b617d8e
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/entry-cairo.patch
@@ -0,0 +1,114 @@
+Index: gtkentry.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gtk/gtkentry.c,v
+retrieving revision 1.317
+diff -u -r1.317 gtk+-2.10.0/gtk/gtkentry.c
+--- gtk+-2.10.0/gtk/gtkentry.c 29 Jun 2006 09:18:05 -0000 1.317
++++ gtk+-2.10.0/gtk/gtkentry.c 2 Jul 2006 14:14:24 -0000
+@@ -3337,7 +3337,9 @@
+ if (GTK_WIDGET_DRAWABLE (entry))
+ {
+ PangoLayout *layout = gtk_entry_ensure_layout (entry, TRUE);
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_t *cr;
++#endif
+ gint x, y;
+ gint start_pos, end_pos;
+
+@@ -3345,23 +3347,37 @@
+
+ get_layout_position (entry, &x, &y);
+
++#ifdef USE_CAIRO_INTERNALLY
+ cr = gdk_cairo_create (entry->text_area);
+
+ cairo_move_to (cr, x, y);
+ gdk_cairo_set_source_color (cr, &widget->style->text [widget->state]);
+ pango_cairo_show_layout (cr, layout);
++#else
++ gdk_draw_layout (entry->text_area, widget->style->text_gc [widget->state],
++ x, y,
++ layout);
++#endif
+
+ if (gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &start_pos, &end_pos))
+ {
+ gint *ranges;
+ gint n_ranges, i;
+ PangoRectangle logical_rect;
+- GdkColor *selection_color, *text_color;
+ GtkBorder inner_border;
++#ifdef USE_CAIRO_INTERNALLY
++ GdkColor *selection_color, *text_color;
++#else
++ GdkGC *selection_gc, *text_gc;
++ GdkRegion *clip_region;
++#endif
+
+ pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
+ gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges);
+
++ get_inner_border (entry, &inner_border);
++
++#ifdef USE_CAIRO_INTERNALLY
+ if (GTK_WIDGET_HAS_FOCUS (entry))
+ {
+ selection_color = &widget->style->base [GTK_STATE_SELECTED];
+@@ -3373,8 +3389,6 @@
+ text_color = &widget->style->text [GTK_STATE_ACTIVE];
+ }
+
+- get_inner_border (entry, &inner_border);
+-
+ for (i = 0; i < n_ranges; ++i)
+ cairo_rectangle (cr,
+ inner_border.left - entry->scroll_offset + ranges[2 * i],
+@@ -3390,11 +3404,46 @@
+ cairo_move_to (cr, x, y);
+ gdk_cairo_set_source_color (cr, text_color);
+ pango_cairo_show_layout (cr, layout);
+-
++#else
++ if (GTK_WIDGET_HAS_FOCUS (entry))
++ {
++ selection_gc = widget->style->base_gc [GTK_STATE_SELECTED];
++ text_gc = widget->style->text_gc [GTK_STATE_SELECTED];
++ }
++ else
++ {
++ selection_gc = widget->style->base_gc [GTK_STATE_ACTIVE];
++ text_gc = widget->style->text_gc [GTK_STATE_ACTIVE];
++ }
++
++ clip_region = gdk_region_new ();
++ for (i = 0; i < n_ranges; ++i)
++ {
++ GdkRectangle rect;
++
++ rect.x = inner_border.left - entry->scroll_offset + ranges[2 * i];
++ rect.y = y;
++ rect.width = ranges[2 * i + 1];
++ rect.height = logical_rect.height;
++
++ gdk_draw_rectangle (entry->text_area, selection_gc, TRUE,
++ rect.x, rect.y, rect.width, rect.height);
++
++ gdk_region_union_with_rect (clip_region, &rect);
++ }
++
++ gdk_gc_set_clip_region (text_gc, clip_region);
++ gdk_draw_layout (entry->text_area, text_gc,
++ x, y,
++ layout);
++ gdk_gc_set_clip_region (text_gc, NULL);
++ gdk_region_destroy (clip_region);
++#endif
+ g_free (ranges);
+ }
+-
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_destroy (cr);
++#endif
+ }
+ }
+
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/gtk+-handhelds.patch b/openembedded/packages/gtk+/gtk+-2.10.0/gtk+-handhelds.patch
new file mode 100644
index 0000000000..4b97373f32
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/gtk+-handhelds.patch
@@ -0,0 +1,264 @@
+--- gtk+-2.8.6/gtk/gtkrange.c.orig 2005-12-07 21:13:33 +0100
++++ gtk+-2.8.6/gtk/gtkrange.c 2005-12-07 21:21:12 +0100
+@@ -186,6 +186,7 @@
+ static GtkWidgetClass *parent_class = NULL;
+ static guint signals[LAST_SIGNAL];
+
++static GdkAtom recognize_protocols_atom, atom_atom;
+
+ GType
+ gtk_range_get_type (void)
+@@ -226,6 +227,9 @@
+ object_class = (GtkObjectClass*) class;
+ widget_class = (GtkWidgetClass*) class;
+
++ recognize_protocols_atom = gdk_atom_intern ("RECOGNIZE_PROTOCOLS", FALSE);
++ atom_atom = gdk_atom_intern ("ATOM", FALSE);
++
+ parent_class = g_type_class_peek_parent (class);
+
+ gobject_class->set_property = gtk_range_set_property;
+@@ -860,6 +864,12 @@
+ &attributes, attributes_mask);
+ gdk_window_set_user_data (range->event_window, range);
+
++ gdk_property_change (range->event_window,
++ recognize_protocols_atom,
++ atom_atom,
++ 32, GDK_PROP_MODE_REPLACE,
++ NULL, 0);
++
+ widget->style = gtk_style_attach (widget->style, widget->window);
+ }
+
+@@ -1229,7 +1239,7 @@
+
+ /* ignore presses when we're already doing something else. */
+ if (range->layout->grab_location != MOUSE_OUTSIDE)
+- return FALSE;
++ return TRUE;
+
+ range->layout->mouse_x = event->x;
+ range->layout->mouse_y = event->y;
+@@ -1429,7 +1439,7 @@
+ return TRUE;
+ }
+
+- return FALSE;
++ return TRUE;
+ }
+
+ /**
+--- gtk+-2.8.6/gtk/gtkentry.c.orig 2005-09-02 21:51:06 +0200
++++ gtk+-2.8.6/gtk/gtkentry.c 2005-12-07 21:21:12 +0100
+@@ -597,6 +597,15 @@
+ 0.0,
+ GTK_PARAM_READWRITE));
+
++ gtk_widget_class_install_style_property (widget_class,
++ g_param_spec_int ("min_width",
++ _("Minimum width"),
++ _("Minimum width of the entry field"),
++ 0,
++ G_MAXINT,
++ MIN_ENTRY_WIDTH,
++ G_PARAM_READABLE));
++
+ signals[POPULATE_POPUP] =
+ g_signal_new ("populate_popup",
+ G_OBJECT_CLASS_TYPE (gobject_class),
+@@ -1227,7 +1236,7 @@
+ {
+ GtkEntry *entry = GTK_ENTRY (widget);
+ PangoFontMetrics *metrics;
+- gint xborder, yborder;
++ gint xborder, yborder, min_width;
+ PangoContext *context;
+
+ gtk_widget_ensure_style (widget);
+@@ -1243,9 +1252,11 @@
+
+ xborder += INNER_BORDER;
+ yborder += INNER_BORDER;
+-
++
++ gtk_widget_style_get (widget, "min_width", &min_width, NULL);
++
+ if (entry->width_chars < 0)
+- requisition->width = MIN_ENTRY_WIDTH + xborder * 2;
++ requisition->width = min_width + xborder * 2;
+ else
+ {
+ gint char_width = pango_font_metrics_get_approximate_char_width (metrics);
+--- gtk+-2.8.6/gtk/gtkarrow.c.orig 2005-06-21 17:38:39 +0200
++++ gtk+-2.8.6/gtk/gtkarrow.c 2005-12-07 21:21:12 +0100
+@@ -31,7 +31,7 @@
+ #include "gtkintl.h"
+ #include "gtkalias.h"
+
+-#define MIN_ARROW_SIZE 15
++#define MIN_ARROW_SIZE 7
+
+ enum {
+ PROP_0,
+@@ -55,6 +55,8 @@
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
++static void gtk_arrow_size_request (GtkWidget *arrow,
++ GtkRequisition *requisition);
+
+ GType
+ gtk_arrow_get_type (void)
+@@ -113,6 +115,7 @@
+ GTK_PARAM_READWRITE));
+
+ widget_class->expose_event = gtk_arrow_expose;
++ widget_class->size_request = gtk_arrow_size_request;
+ }
+
+ static void
+@@ -168,13 +171,18 @@
+ }
+
+ static void
++gtk_arrow_size_request (GtkWidget *arrow,
++ GtkRequisition *requisition)
++{
++ requisition->width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2;
++ requisition->height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2;
++}
++
++static void
+ gtk_arrow_init (GtkArrow *arrow)
+ {
+ GTK_WIDGET_SET_FLAGS (arrow, GTK_NO_WINDOW);
+
+- GTK_WIDGET (arrow)->requisition.width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2;
+- GTK_WIDGET (arrow)->requisition.height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2;
+-
+ arrow->arrow_type = GTK_ARROW_RIGHT;
+ arrow->shadow_type = GTK_SHADOW_OUT;
+ }
+--- gtk+-2.8.6/gtk/gtkcalendar.c.orig 2005-12-07 21:36:14 +0100
++++ gtk+-2.8.6/gtk/gtkcalendar.c 2005-12-07 21:49:21 +0100
+@@ -692,6 +692,35 @@
+ ****************************************/
+
+ static void
++calendar_select_day (GtkCalendar *calendar, guint day)
++{
++ g_return_if_fail (GTK_IS_CALENDAR (calendar));
++ g_return_if_fail (day <= 31);
++
++ /* Deselect the old day */
++ if (calendar->selected_day > 0)
++ {
++ gint selected_day;
++
++ selected_day = calendar->selected_day;
++ calendar->selected_day = 0;
++ if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
++ calendar_invalidate_day_num (calendar, selected_day);
++ }
++
++ calendar->selected_day = day;
++
++ /* Select the new day */
++ if (day != 0)
++ {
++ if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
++ calendar_invalidate_day_num (calendar, day);
++ }
++
++ g_object_notify (G_OBJECT (calendar), "day");
++}
++
++static void
+ calendar_set_month_next (GtkCalendar *calendar)
+ {
+ gint month_len;
+@@ -723,10 +752,10 @@
+ if (month_len < calendar->selected_day)
+ {
+ calendar->selected_day = 0;
+- gtk_calendar_select_day (calendar, month_len);
++ calendar_select_day (calendar, month_len);
+ }
+ else
+- gtk_calendar_select_day (calendar, calendar->selected_day);
++ calendar_select_day (calendar, calendar->selected_day);
+
+ gtk_widget_queue_draw (GTK_WIDGET (calendar));
+ }
+@@ -752,10 +781,10 @@
+ if (month_len < calendar->selected_day)
+ {
+ calendar->selected_day = 0;
+- gtk_calendar_select_day (calendar, month_len);
++ calendar_select_day (calendar, month_len);
+ }
+ else
+- gtk_calendar_select_day (calendar, calendar->selected_day);
++ calendar_select_day (calendar, calendar->selected_day);
+
+ gtk_widget_queue_draw (GTK_WIDGET (calendar));
+ }
+@@ -784,10 +813,10 @@
+ if (month_len < calendar->selected_day)
+ {
+ calendar->selected_day = 0;
+- gtk_calendar_select_day (calendar, month_len);
++ calendar_select_day (calendar, month_len);
+ }
+ else
+- gtk_calendar_select_day (calendar, calendar->selected_day);
++ calendar_select_day (calendar, calendar->selected_day);
+
+ gtk_widget_queue_draw (GTK_WIDGET (calendar));
+ }
+@@ -1088,13 +1117,13 @@
+ if (month_len < calendar->selected_day)
+ {
+ calendar->selected_day = 0;
+- gtk_calendar_select_day (calendar, month_len);
++ calendar_select_day (calendar, month_len);
+ }
+ else
+ {
+ if (calendar->selected_day < 0)
+ calendar->selected_day = calendar->selected_day + 1 + month_length[leap (calendar->year)][calendar->month + 1];
+- gtk_calendar_select_day (calendar, calendar->selected_day);
++ calendar_select_day (calendar, calendar->selected_day);
+ }
+
+ gtk_widget_queue_draw (GTK_WIDGET (calendar));
+@@ -3285,27 +3314,7 @@
+ g_return_if_fail (GTK_IS_CALENDAR (calendar));
+ g_return_if_fail (day <= 31);
+
+- /* Deselect the old day */
+- if (calendar->selected_day > 0)
+- {
+- gint selected_day;
+-
+- selected_day = calendar->selected_day;
+- calendar->selected_day = 0;
+- if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
+- calendar_invalidate_day_num (calendar, selected_day);
+- }
+-
+- calendar->selected_day = day;
+-
+- /* Select the new day */
+- if (day != 0)
+- {
+- if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
+- calendar_invalidate_day_num (calendar, day);
+- }
+-
+- g_object_notify (G_OBJECT (calendar), "day");
++ calendar_select_day (calendar, day);
+
+ g_signal_emit (calendar,
+ gtk_calendar_signals[DAY_SELECTED_SIGNAL],
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/gtklabel-resize-patch b/openembedded/packages/gtk+/gtk+-2.10.0/gtklabel-resize-patch
new file mode 100644
index 0000000000..df29656343
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/gtklabel-resize-patch
@@ -0,0 +1,10 @@
+--- gtk+-2.4.3/gtk/gtklabel.c~ 2004-06-11 13:50:34.000000000 +0100
++++ gtk+-2.4.3/gtk/gtklabel.c 2004-07-05 13:33:57.000000000 +0100
+@@ -1623,6 +1623,7 @@
+
+ /* We have to clear the layout, fonts etc. may have changed */
+ gtk_label_clear_layout (label);
++ gtk_widget_queue_resize (GTK_WIDGET (label));
+ }
+
+ static void
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/gtktreeview-316689.patch b/openembedded/packages/gtk+/gtk+-2.10.0/gtktreeview-316689.patch
new file mode 100644
index 0000000000..4e77ddf9f9
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/gtktreeview-316689.patch
@@ -0,0 +1,25 @@
+diff -u -p -r1.498 gtktreeview.c
+--- gtk+-2.8.9/gtk/gtktreeview.c 22 Oct 2005 21:08:23 -0000 1.498
++++ gtk+-2.8.9/gtk/gtktreeview.c 24 Oct 2005 22:30:27 -0000
+@@ -2098,6 +2098,9 @@ gtk_tree_view_size_allocate (GtkWidget
+ /* now the adjustments and window sizes are in sync, we can sync toprow/dy again */
+ if (tree_view->priv->height <= tree_view->priv->vadjustment->page_size)
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), 0);
++ else if (tree_view->priv->vadjustment->value + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
++ gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment),
++ tree_view->priv->height - tree_view->priv->vadjustment->page_size);
+ else if (gtk_tree_row_reference_valid (tree_view->priv->top_row))
+ gtk_tree_view_top_row_to_dy (tree_view);
+ else
+@ -5031,6 +5034,11 @@ validate_visible_area (GtkTreeView *tree
+ * else than zero. we update top_row to be in sync with dy = 0.
+ */
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), 0);
++ gtk_tree_view_dy_to_top_row (tree_view);
++ }
++ else if (tree_view->priv->vadjustment->value + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
++ {
++ gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), tree_view->priv->height - tree_view->priv->vadjustment->page_size);
+ gtk_tree_view_dy_to_top_row (tree_view);
+ }
+ else
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/hardcoded_libtool.patch b/openembedded/packages/gtk+/gtk+-2.10.0/hardcoded_libtool.patch
new file mode 100644
index 0000000000..b2afddcc61
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/hardcoded_libtool.patch
@@ -0,0 +1,29 @@
+--- gtk+-2.6.0/configure.in.old 2005-01-01 16:23:45.000000000 +0000
++++ gtk+-2.6.0/configure.in 2005-01-01 16:24:03.000000000 +0000
+@@ -360,7 +360,7 @@
+ AC_MSG_CHECKING([Whether to write dependencies into .pc files])
+ case $enable_explicit_deps in
+ auto)
+- deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
++ deplib_check_method=`($host_alias-libtool --config; echo eval echo \\$deplib_check_method) | sh`
+ if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
+ enable_explicit_deps=yes
+ else
+@@ -688,7 +688,7 @@
+ dnl Now we check to see if our libtool supports shared lib deps
+ dnl (in a rather ugly way even)
+ if $dynworks; then
+- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
++ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config"
+ pixbuf_deplibs_check=`$pixbuf_libtool_config | \
+ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
+ sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
+@@ -1512,7 +1512,7 @@
+ #
+ # We are using gmodule-no-export now, but I'm leaving the stripping
+ # code in place for now, since pango and atk still require gmodule.
+-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
++export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+ if test -n "$export_dynamic"; then
+ GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
+ GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/menu-deactivate.patch b/openembedded/packages/gtk+/gtk+-2.10.0/menu-deactivate.patch
new file mode 100644
index 0000000000..29e665fbf3
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/menu-deactivate.patch
@@ -0,0 +1,50 @@
+--- gtk+-2.4.4/gtk/gtkmenushell.c.old Thu Aug 26 23:45:28 2004
++++ gtk+-2.4.4/gtk/gtkmenushell.c Fri Aug 27 00:13:33 2004
+@@ -37,7 +37,7 @@
+ #include "gtktearoffmenuitem.h"
+ #include "gtkwindow.h"
+
+-#define MENU_SHELL_TIMEOUT 500
++#define MENU_SHELL_TIMEOUT 2000
+
+ enum {
+ DEACTIVATE,
+@@ -156,6 +156,7 @@
+ static GtkContainerClass *parent_class = NULL;
+ static guint menu_shell_signals[LAST_SIGNAL] = { 0 };
+
++static int last_crossing_time;
+
+ GType
+ gtk_menu_shell_get_type (void)
+@@ -418,6 +419,7 @@
+ gtk_grab_add (GTK_WIDGET (menu_shell));
+ menu_shell->have_grab = TRUE;
+ menu_shell->active = TRUE;
++ last_crossing_time = 0;
+ }
+ }
+
+@@ -545,6 +547,13 @@
+ menu_shell->activate_time = 0;
+ deactivate = FALSE;
+ }
++
++ if (last_crossing_time != 0
++ && ((event->time - last_crossing_time) < 500))
++ {
++ last_crossing_time = 0;
++ deactivate = FALSE;
++ }
+
+ if (deactivate)
+ {
+@@ -597,6 +606,8 @@
+ if (menu_shell->active)
+ {
+ menu_item = gtk_get_event_widget ((GdkEvent*) event);
++
++ last_crossing_time = event->time;
+
+ if (!menu_item ||
+ (GTK_IS_MENU_ITEM (menu_item) &&
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/no-demos.patch b/openembedded/packages/gtk+/gtk+-2.10.0/no-demos.patch
new file mode 100644
index 0000000000..0145067ad5
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/no-demos.patch
@@ -0,0 +1,10 @@
+--- gtk+-2.8.6/Makefile.am.orig 2005-12-07 21:30:56 +0100
++++ gtk+-2.8.6/Makefile.am 2005-12-07 21:31:10 +0100
+@@ -1,6 +1,6 @@
+ ## Makefile.am for GTK+
+
+-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
++SRC_SUBDIRS = gdk-pixbuf gdk gtk modules tests perf contrib
+ SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
+
+ # require automake 1.4
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/no-xwc.patch b/openembedded/packages/gtk+/gtk+-2.10.0/no-xwc.patch
new file mode 100644
index 0000000000..318b150359
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/no-xwc.patch
@@ -0,0 +1,179 @@
+Index: configure.in
+===================================================================
+RCS file: /cvs/gnome/gtk+/configure.in,v
+retrieving revision 1.469.2.22
+diff -u -r1.469.2.22 configure.in
+--- gtk/configure.in 16 Mar 2006 16:39:45 -0000 1.469.2.22
++++ gtk/configure.in 20 Mar 2006 12:07:11 -0000
+@@ -1115,6 +1115,8 @@
+
+ AC_CHECK_FUNCS(XConvertCase XInternAtoms)
+
++ AC_CHECK_FUNCS(XmbDrawString)
++
+ # Generic X11R6 check needed for XIM support; we could
+ # probably use this to replace the above, but we'll
+ # leave the separate checks for XConvertCase and XInternAtoms
+Index: gdk/x11/gdkdrawable-x11.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk/x11/gdkdrawable-x11.c,v
+retrieving revision 1.58
+diff -u -r1.58 gdkdrawable-x11.c
+--- gtk/gdk/x11/gdkdrawable-x11.c 15 Aug 2005 19:04:54 -0000 1.58
++++ gtk/gdk/x11/gdkdrawable-x11.c 20 Mar 2006 12:07:12 -0000
+@@ -579,12 +579,14 @@
+ GDK_GC_GET_XGC (gc), x, y, (XChar2b *) text, text_length / 2);
+ }
+ }
++#ifdef HAVE_XMBDRAWSTRING
+ else if (font->type == GDK_FONT_FONTSET)
+ {
+ XFontSet fontset = (XFontSet) GDK_FONT_XFONT (font);
+ XmbDrawString (xdisplay, impl->xid,
+ fontset, GDK_GC_GET_XGC (gc), x, y, text, text_length);
+ }
++#endif
+ else
+ g_error("undefined font type\n");
+ }
+@@ -616,6 +618,7 @@
+ GDK_GC_GET_XGC (gc), x, y, text_8bit, text_length);
+ g_free (text_8bit);
+ }
++#ifdef HAVE_XMBDRAWSTRING
+ else if (font->type == GDK_FONT_FONTSET)
+ {
+ if (sizeof(GdkWChar) == sizeof(wchar_t))
+@@ -636,6 +639,7 @@
+ g_free (text_wchar);
+ }
+ }
++#endif
+ else
+ g_error("undefined font type\n");
+ }
+Index: gdk/x11/gdkfont-x11.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk/x11/gdkfont-x11.c,v
+retrieving revision 1.48.2.1
+diff -u -r1.48.2.1 gdkfont-x11.c
+--- gtk/gdk/x11/gdkfont-x11.c 20 Jan 2006 04:39:43 -0000 1.48.2.1
++++ gtk/gdk/x11/gdkfont-x11.c 20 Mar 2006 12:07:12 -0000
+@@ -527,10 +527,12 @@
+ width = XTextWidth16 (xfont, (XChar2b *) text, text_length / 2);
+ }
+ break;
++#ifdef HAVE_XMBDRAWSTRING
+ case GDK_FONT_FONTSET:
+ fontset = (XFontSet) private->xfont;
+ width = XmbTextEscapement (fontset, text, text_length);
+ break;
++#endif
+ default:
+ width = 0;
+ }
+@@ -580,6 +582,7 @@
+ width = 0;
+ }
+ break;
++#ifdef HAVE_XMBDRAWSTRING
+ case GDK_FONT_FONTSET:
+ if (sizeof(GdkWChar) == sizeof(wchar_t))
+ {
+@@ -597,6 +600,7 @@
+ g_free (text_wchar);
+ }
+ break;
++#endif
+ default:
+ width = 0;
+ }
+@@ -669,6 +673,7 @@
+ if (descent)
+ *descent = overall.descent;
+ break;
++#ifdef HAVE_XMBDRAWSTRING
+ case GDK_FONT_FONTSET:
+ fontset = (XFontSet) private->xfont;
+ XmbTextExtents (fontset, text, text_length, &ink, &logical);
+@@ -683,6 +688,7 @@
+ if (descent)
+ *descent = ink.y + ink.height;
+ break;
++#endif
+ }
+
+ }
+@@ -755,6 +761,7 @@
+ *descent = overall.descent;
+ break;
+ }
++#ifdef HAVE_XMBDRAWSTRING
+ case GDK_FONT_FONTSET:
+ fontset = (XFontSet) private->xfont;
+
+@@ -782,6 +789,7 @@
+ if (descent)
+ *descent = ink.y + ink.height;
+ break;
++#endif
+ }
+
+ }
+Index: gdk/x11/gdkim-x11.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk/x11/gdkim-x11.c,v
+retrieving revision 1.38
+diff -u -r1.38 gdkim-x11.c
+--- gtk/gdk/x11/gdkim-x11.c 16 Mar 2005 03:17:27 -0000 1.38
++++ gtk/gdk/x11/gdkim-x11.c 20 Mar 2006 12:07:12 -0000
+@@ -48,6 +48,7 @@
+ void
+ _gdk_x11_initialize_locale (void)
+ {
++#ifdef HAVE_XMBDRAWSTRING
+ wchar_t result;
+ gchar *current_locale;
+ static char *last_locale = NULL;
+@@ -93,7 +94,8 @@
+ GDK_NOTE (XIM,
+ g_message ("%s multi-byte string functions.",
+ gdk_use_mb ? "Using" : "Not using"));
+-
++#endif
++
+ return;
+ }
+
+@@ -136,6 +138,7 @@
+ {
+ gchar *mbstr;
+
++#ifdef HAVE_XMBDRAWSTRING
+ if (gdk_use_mb)
+ {
+ GdkDisplay *display = find_a_display ();
+@@ -178,6 +181,7 @@
+ XFree (tpr.value);
+ }
+ else
++#endif
+ {
+ gint length = 0;
+ gint i;
+@@ -210,6 +214,7 @@
+ gint
+ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
+ {
++#ifdef HAVE_XMBDRAWSTRING
+ if (gdk_use_mb)
+ {
+ GdkDisplay *display = find_a_display ();
+@@ -242,6 +247,7 @@
+ return len_cpy;
+ }
+ else
++#endif
+ {
+ gint i;
+
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/scroll-timings.patch b/openembedded/packages/gtk+/gtk+-2.10.0/scroll-timings.patch
new file mode 100644
index 0000000000..a38b21dcc2
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/scroll-timings.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.4.4/gtk/gtkrange.c~ 2004-08-23 01:50:22.000000000 +0100
++++ gtk+-2.4.4/gtk/gtkrange.c 2004-08-27 15:48:49.000000000 +0100
+@@ -35,9 +35,9 @@
+ #include "gtkintl.h"
+ #include "gtkscrollbar.h"
+
+-#define SCROLL_INITIAL_DELAY 250 /* must hold button this long before ... */
+-#define SCROLL_LATER_DELAY 100 /* ... it starts repeating at this rate */
+-#define UPDATE_DELAY 300 /* Delay for queued update */
++#define SCROLL_INITIAL_DELAY 500 /* must hold button this long before ... */
++#define SCROLL_LATER_DELAY 200 /* ... it starts repeating at this rate */
++#define UPDATE_DELAY 1000 /* Delay for queued update */
+
+ enum {
+ PROP_0,
diff --git a/openembedded/packages/gtk+/gtk+-2.10.0/single-click.patch b/openembedded/packages/gtk+/gtk+-2.10.0/single-click.patch
new file mode 100644
index 0000000000..1bf0db12a8
--- /dev/null
+++ b/openembedded/packages/gtk+/gtk+-2.10.0/single-click.patch
@@ -0,0 +1,36 @@
+--- gtk+-2.8.6/gtk/gtkfilesel.c.orig 2005-12-07 21:13:33 +0100
++++ gtk+-2.8.6/gtk/gtkfilesel.c 2005-12-07 21:14:56 +0100
+@@ -2461,6 +2461,33 @@
+ if (fs->last_selected != NULL)
+ g_free (fs->last_selected);
+
++ // Single-click directory entry
++ if (new_names->len == 1)
++ {
++ GtkTreeView *tree_view;
++ GtkTreeModel *model;
++ GtkTreePath *path;
++ GtkTreeIter iter;
++ gboolean is_file;
++
++ tree_view = gtk_tree_selection_get_tree_view (selection);
++
++ if (gtk_tree_selection_get_selected (selection, &model, &iter))
++ {
++ path = gtk_tree_model_get_path (model, &iter);
++ gtk_tree_model_get (model, &iter, ISFILE_COLUMN, &is_file, -1);
++
++ if (!is_file)
++ {
++ gtk_file_selection_dir_activate (tree_view, path,
++ gtk_tree_view_get_column (tree_view, DIR_COLUMN),
++ user_data);
++ }
++
++ gtk_tree_path_free (path);