[oe-commits] org.oe.dev gtk+ 2.10.14: add updated versions of cell-renderer and treeview-checkbox patches

mickeyl commit openembedded-commits at lists.openembedded.org
Thu Aug 23 12:44:14 UTC 2007


gtk+ 2.10.14: add updated versions of cell-renderer and treeview-checkbox patches

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: 30eacf6a3961a3ddc67914e506769695a9d77cae
ViewMTN: http://monotone.openembedded.org/revision.psp?id=30eacf6a3961a3ddc67914e506769695a9d77cae
Files:
1
packages/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch
packages/gtk+/gtk+-2.10.14/treeview-checkbox-size.patch
packages/gtk+/gtk+_2.10.14.bb
Diffs:

#
# mt diff -r770a70790676401af49f64e57ee4f9c079295328 -r30eacf6a3961a3ddc67914e506769695a9d77cae
#
# 
# 
# add_file "packages/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch"
#  content [a6b4fce6163979c9ab25466b6441bb3449e61352]
# 
# add_file "packages/gtk+/gtk+-2.10.14/treeview-checkbox-size.patch"
#  content [9f82aa13d680670f6f41c683f61e814cae67d056]
# 
# patch "packages/gtk+/gtk+_2.10.14.bb"
#  from [b7a85a029e4d690ccbcfaae174f1f1950723c46d]
#    to [8ae4f9f76c8a1af983ec950a2c99047c7a8a0cc2]
# 
============================================================
--- packages/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch	a6b4fce6163979c9ab25466b6441bb3449e61352
+++ packages/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch	a6b4fce6163979c9ab25466b6441bb3449e61352
@@ -0,0 +1,30 @@
+Index: gtk/gtkcellrenderertext.c
+===================================================================
+--- gtk/gtkcellrenderertext.c	(revision 18557)
++++ gtk/gtkcellrenderertext.c	(working copy)
+@@ -1794,13 +1794,24 @@ gtk_cell_renderer_text_focus_out_event (
+ 					gpointer   data)
+ {
+   GtkCellRendererTextPrivate *priv;
++  GtkSettings *settings;
++  gboolean in_touchscreen_mode = FALSE;
+ 
+   priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data);
+ 
+   if (priv->in_entry_menu)
+     return FALSE;
+ 
+-  GTK_ENTRY (entry)->editing_canceled = TRUE;
++  if (gtk_widget_has_screen (entry))
++    settings = gtk_settings_get_for_screen (gtk_widget_get_screen (entry));
++  else
++    settings = gtk_settings_get_default ();
++
++  g_object_get (G_OBJECT (settings),
++                "gtk-touchscreen-mode", &in_touchscreen_mode,
++                NULL);
++
++  GTK_ENTRY (entry)->editing_canceled = !in_touchscreen_mode;
+   gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (entry));
+   gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (entry));
+ 
============================================================
--- packages/gtk+/gtk+-2.10.14/treeview-checkbox-size.patch	9f82aa13d680670f6f41c683f61e814cae67d056
+++ packages/gtk+/gtk+-2.10.14/treeview-checkbox-size.patch	9f82aa13d680670f6f41c683f61e814cae67d056
@@ -0,0 +1,100 @@
+Index: gtk/gtkcellrenderertoggle.c
+===================================================================
+--- gtk/gtkcellrenderertoggle.c	(revision 18523)
++++ gtk/gtkcellrenderertoggle.c	(working copy)
+@@ -71,6 +71,8 @@
+   PROP_INDICATOR_SIZE
+ };
+ 
++/* This is a hard-coded default which promptly gets overridden by a size
++   calculated from the font size. */
+ #define TOGGLE_WIDTH 12
+ 
+ static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
+@@ -80,8 +82,9 @@
+ typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate;
+ struct _GtkCellRendererTogglePrivate
+ {
+-  gint indicator_size;
+-
++  gint indicator_size; /* This is the real size */
++  gint override_size; /* This is the size set from the indicator-size property */
++  GtkWidget *cached_widget;
+   guint inconsistent : 1;
+ };
+ 
+@@ -104,6 +107,7 @@
+   GTK_CELL_RENDERER (celltoggle)->ypad = 2;
+ 
+   priv->indicator_size = TOGGLE_WIDTH;
++  priv->override_size = 0;
+   priv->inconsistent = FALSE;
+ }
+ 
+@@ -210,7 +214,7 @@
+       g_value_set_boolean (value, celltoggle->radio);
+       break;
+     case PROP_INDICATOR_SIZE:
+-      g_value_set_int (value, priv->indicator_size);
++      g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size);
+       break;
+     default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -245,7 +249,7 @@
+       celltoggle->radio = g_value_get_boolean (value);
+       break;
+     case PROP_INDICATOR_SIZE:
+-      priv->indicator_size = g_value_get_int (value);
++      priv->override_size = g_value_get_int (value);
+       break;
+     default:
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -273,6 +277,27 @@
+ }
+ 
+ static void
++on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data)
++{
++  GtkCellRendererTogglePrivate *priv = user_data;
++  PangoContext *context;
++  PangoFontMetrics *metrics;
++  int height;
++  
++  context = gtk_widget_get_pango_context (widget);
++  metrics = pango_context_get_metrics (context,
++                                       widget->style->font_desc,
++                                       pango_context_get_language (context));
++
++  height = pango_font_metrics_get_ascent (metrics) +
++    pango_font_metrics_get_descent (metrics);
++  
++  pango_font_metrics_unref (metrics);
++  
++  priv->indicator_size = PANGO_PIXELS (height * 0.85);
++}
++
++static void
+ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
+ 				   GtkWidget       *widget,
+ 				   GdkRectangle    *cell_area,
+@@ -287,6 +312,20 @@
+ 
+   priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell);
+ 
++  if (priv->override_size) {
++    priv->indicator_size = priv->override_size;
++  } else if (priv->cached_widget != widget) {
++    if (priv->cached_widget) {
++      g_object_remove_weak_pointer (G_OBJECT (widget), (gpointer*)&priv->cached_widget);
++      g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv);
++    }
++    priv->cached_widget = widget;
++    g_object_add_weak_pointer (G_OBJECT (widget), (gpointer*)&priv->cached_widget);
++    g_signal_connect (widget, "style-set", G_CALLBACK (on_widget_style_set), priv);
++    
++    on_widget_style_set (widget, NULL, priv);
++  }
++
+   calc_width = (gint) cell->xpad * 2 + priv->indicator_size;
+   calc_height = (gint) cell->ypad * 2 + priv->indicator_size;
+ 
============================================================
--- packages/gtk+/gtk+_2.10.14.bb	b7a85a029e4d690ccbcfaae174f1f1950723c46d
+++ packages/gtk+/gtk+_2.10.14.bb	8ae4f9f76c8a1af983ec950a2c99047c7a8a0cc2
@@ -1,6 +1,6 @@ require gtk-2.10.inc
 require gtk-2.10.inc
 
-PR = "r5"
+PR = "r6"
 
 SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-${PV}.tar.bz2 \
            file://no-xwc.patch;patch=1 \
@@ -19,19 +19,21 @@ SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.
            file://spinbutton.patch;patch=1 \
            file://gtk+-handhelds.patch;patch=1 \
            file://filesel-fix-segfault.patch;patch=1 \
-           file://toggle-font.diff;patch=1;pnum=0 \
            file://combo-arrow-size.patch;patch=1;pnum=0 \
            file://range-no-redraw.patch;patch=1;pnum=0 \
            file://scrolled-placement.patch;patch=1;pnum=0 \
+           file://treeview-checkbox-size.patch;patch=1;pnum=0 \
+           file://cell-renderer-edit-focus.patch;patch=1;pnum=0 \
            "
 
-#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
 require gtk-fpu.inc
 EXTRA_OECONF += "${@get_gtk_fpu_setting(bb, d)}"
 
 # try to squeeze some more performance out of it
 SRC_URI_append_fic-gta01 = " file://lower-quality-scaling-in-pixbuf-engine.patch;patch=1"
 SRC_URI_append_fic-gta02 = " file://lower-quality-scaling-in-pixbuf-engine.patch;patch=1"
+
 # this doesn't seem to work
 SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
 # let's do it manually then






More information about the Openembedded-commits mailing list