aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch')
-rw-r--r--recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch b/recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch
new file mode 100644
index 0000000000..ec408a5f28
--- /dev/null
+++ b/recipes/gtk+/gtk+-2.10.14/combo-arrow-size.patch
@@ -0,0 +1,66 @@
+Index: gtk/gtkcombobox.c
+===================================================================
+--- gtk/gtkcombobox.c.orig 2007-08-21 11:10:15.000000000 +0000
++++ gtk/gtkcombobox.c 2007-08-21 11:13:00.000000000 +0000
+@@ -692,6 +692,25 @@
+ FALSE,
+ GTK_PARAM_READABLE));
+
++ /**
++ * GtkComboBox:arrow-size:
++ *
++ * Sets the minimum size of the arrow in the combo box. Note
++ * that the arrow size is coupled to the font size, so in case
++ * a larger font is used, the arrow will be larger than set
++ * by arrow size.
++ *
++ * Since: 2.12
++ */
++ gtk_widget_class_install_style_property (widget_class,
++ g_param_spec_int ("arrow-size",
++ P_("Arrow Size"),
++ P_("The minimum size of the arrow in the combo box"),
++ 0,
++ G_MAXINT,
++ 15,
++ GTK_PARAM_READABLE));
++
+ g_type_class_add_private (object_class, sizeof (GtkComboBoxPrivate));
+ }
+
+@@ -1926,8 +1945,13 @@
+ {
+ GtkComboBox *combo_box = GTK_COMBO_BOX (widget);
+ gint focus_width, focus_pad;
++ gint font_size;
++ gint arrow_size;
+ GtkAllocation child;
+ GtkRequisition req;
++ PangoContext *context;
++ PangoFontMetrics *metrics;
++ PangoFontDescription *font_desc;
+ gboolean is_rtl = gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL;
+
+ widget->allocation = *allocation;
+@@ -1935,8 +1959,21 @@
+ gtk_widget_style_get (GTK_WIDGET (widget),
+ "focus-line-width", &focus_width,
+ "focus-padding", &focus_pad,
++ "arrow-size", &arrow_size,
+ NULL);
+
++ font_desc = GTK_BIN (widget)->child->style->font_desc;
++ context = gtk_widget_get_pango_context (widget);
++ metrics = pango_context_get_metrics (context, font_desc,
++ pango_context_get_language (context));
++ font_size = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
++ pango_font_metrics_get_descent (metrics));
++ pango_font_metrics_unref (metrics);
++
++ arrow_size = MAX (arrow_size, font_size);
++
++ gtk_widget_set_size_request (combo_box->priv->arrow, arrow_size, arrow_size);
++
+ if (!combo_box->priv->tree_view)
+ {
+ if (combo_box->priv->cell_view)