Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gnometesting.git;a=commitdiff;h=ba03932acf99b42630105c8709acff6b921a2ad2

commit ba03932acf99b42630105c8709acff6b921a2ad2
Author: bouleetbil <bouleet...@frogdev.info>
Date:   Wed Feb 2 23:01:29 2011 +0100

gtk+3-2.99.3-2-x86_64

*Added some fixe

diff --git a/source/xlib/gtk+3/FrugalBuild b/source/xlib/gtk+3/FrugalBuild
index 0288175..3fedb8d 100644
--- a/source/xlib/gtk+3/FrugalBuild
+++ b/source/xlib/gtk+3/FrugalBuild
@@ -4,7 +4,7 @@
pkgname=gtk+3
_F_gnome_name=gtk+
pkgver=2.99.3
-pkgrel=1
+pkgrel=2
pkgdesc="The GTK+ Toolkit (3.x series)"
depends=('libxext' 'libxfixes' 'cairo' 'libgcc' 'libjpeg' 'libtiff' 'libcups' \
'atk' 'pango' 'libxinerama' 'libxcomposite' 'libxcursor' \
@@ -17,9 +17,11 @@ _F_gnome_git="n"
Finclude gnome
url="http://www.gtk.org/";
_F_cd_path="gtk+-$pkgver"
-source=($source im-cedilla.conf)
+source=($source im-cedilla.conf regression.diff build.diff)
sha1sums=('a8501bf81edb9f403847400860764bf2be0587bc' \
-          'f8a64241bcc873c1f1110e16306e48577a41852b')
+          'f8a64241bcc873c1f1110e16306e48577a41852b' \
+          '77b5d0576698a988d5f88b783913cb1fb26ea5ca' \
+          '8358ca1664ea210b63569cd6d5debd72e49cdd9e')

if [ "$_F_gnome_git" != "n" ]; then
unset sha1sums
diff --git a/source/xlib/gtk+3/build.diff b/source/xlib/gtk+3/build.diff
new file mode 100644
index 0000000..332ca90
--- /dev/null
+++ b/source/xlib/gtk+3/build.diff
@@ -0,0 +1,120 @@
+diff --git a/gtk/gtkcelllayout.c b/gtk/gtkcelllayout.c
+index d0ff6ca..3fd59ad 100644
+--- a/gtk/gtkcelllayout.c
++++ b/gtk/gtkcelllayout.c
+@@ -807,37 +807,35 @@ cell_packing_end_element (GMarkupParseContext *context,
+   CellPackingSubParserData *parser_data = 
(CellPackingSubParserData*)user_data;
+   GtkCellArea *area;
+
+-  /* Append the translated strings */
+-  if (parser_data->string->len)
+-    {
+-      area = gtk_cell_layout_get_area (parser_data->cell_layout);
++  area = gtk_cell_layout_get_area (parser_data->cell_layout);
+
+-      if (area)
++  if (area)
++    {
++      /* translate the string */
++      if (parser_data->string->len && parser_data->translatable)
+       {
+-        if (parser_data->translatable)
+-          {
+-            gchar *translated;
+-            const gchar* domain;
+-
+-            domain = gtk_builder_get_translation_domain 
(parser_data->builder);
+-
+-            translated = _gtk_builder_parser_translate (domain,
+-                                                        parser_data->context,
+-                                                        
parser_data->string->str);
+-            g_string_set_size (parser_data->string, 0);
+-            g_string_append (parser_data->string, translated);
+-          }
+-
+-        gtk_cell_layout_buildable_set_cell_property (area,
+-                                                     parser_data->builder,
+-                                                     parser_data->renderer,
+-                                                     
parser_data->cell_prop_name,
+-                                                     
parser_data->string->str);
++        gchar *translated;
++        const gchar* domain;
++
++        domain = gtk_builder_get_translation_domain (parser_data->builder);
++
++        translated = _gtk_builder_parser_translate (domain,
++                                                    parser_data->context,
++                                                    parser_data->string->str);
++        g_string_set_size (parser_data->string, 0);
++        g_string_append (parser_data->string, translated);
+       }
+-      else
+-      g_warning ("%s does not have an internal GtkCellArea class and cannot 
apply child cell properties",
+-                 g_type_name (G_OBJECT_TYPE (parser_data->cell_layout)));
++
++      if (parser_data->cell_prop_name)
++      gtk_cell_layout_buildable_set_cell_property (area,
++                                                   parser_data->builder,
++                                                   parser_data->renderer,
++                                                   
parser_data->cell_prop_name,
++                                                   parser_data->string->str);
+     }
++  else
++    g_warning ("%s does not have an internal GtkCellArea class and cannot 
apply child cell properties",
++             g_type_name (G_OBJECT_TYPE (parser_data->cell_layout)));
+
+   g_string_set_size (parser_data->string, 0);
+   g_free (parser_data->cell_prop_name);
+diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
+index 5bf6f4d..18f046c 100644
+--- a/gtk/gtkcontainer.c
++++ b/gtk/gtkcontainer.c
+@@ -643,30 +643,28 @@ attributes_end_element (GMarkupParseContext *context,
+ {
+   PackingPropertiesData *parser_data = (PackingPropertiesData*)user_data;
+
+-  /* Append the translated strings */
+-  if (parser_data->string->len)
++  /* translate the string */
++  if (parser_data->string->len && parser_data->translatable)
+     {
+-      if (parser_data->translatable)
+-      {
+-        gchar *translated;
+-        const gchar* domain;
+-
+-        domain = gtk_builder_get_translation_domain (parser_data->builder);
+-
+-        translated = _gtk_builder_parser_translate (domain,
+-                                                    parser_data->context,
+-                                                    parser_data->string->str);
+-        g_string_set_size (parser_data->string, 0);
+-        g_string_append (parser_data->string, translated);
+-      }
+-
+-      gtk_container_buildable_set_child_property (parser_data->container,
+-                                                parser_data->builder,
+-                                                parser_data->child,
+-                                                parser_data->child_prop_name,
++      gchar *translated;
++      const gchar* domain;
++
++      domain = gtk_builder_get_translation_domain (parser_data->builder);
++
++      translated = _gtk_builder_parser_translate (domain,
++                                                parser_data->context,
+                                                 parser_data->string->str);
++      g_string_set_size (parser_data->string, 0);
++      g_string_append (parser_data->string, translated);
+     }
+
++  if (parser_data->child_prop_name)
++    gtk_container_buildable_set_child_property (parser_data->container,
++                                              parser_data->builder,
++                                              parser_data->child,
++                                              parser_data->child_prop_name,
++                                              parser_data->string->str);
++
+   g_string_set_size (parser_data->string, 0);
+   g_free (parser_data->child_prop_name);
+   g_free (parser_data->context);
diff --git a/source/xlib/gtk+3/regression.diff 
b/source/xlib/gtk+3/regression.diff
new file mode 100644
index 0000000..4aa5d3c
--- /dev/null
+++ b/source/xlib/gtk+3/regression.diff
@@ -0,0 +1,36 @@
+From 54c97f3ba2358c60fcc32404b67716e44384fb52 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mcla...@redhat.com>
+Date: Wed, 2 Feb 2011 00:40:02 -0500
+Subject: [PATCH 1/2] Fix another GtkFixed regression, in gtk_fixed_forall()
+
+b3f6f67c changed the loop from while() to for() in gtk_fixed_forall(),
+but that's wrong since the callback can have side-effects on the list,
+in case the current child gets removed. And that's the case when the
+widget is destroyed.
+
+Patch by Vincent Untz
+https://bugzilla.gnome.org/show_bug.cgi?id=641196
+---
+ gtk/gtkfixed.c |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c
+index fd92cd7..e453005 100644
+--- a/gtk/gtkfixed.c
++++ b/gtk/gtkfixed.c
+@@ -540,9 +540,11 @@ gtk_fixed_forall (GtkContainer *container,
+   GtkFixedChild *child;
+   GList *children;
+
+-  for (children = priv->children; children; children = children->next)
++  children = priv->children;
++  while (children)
+     {
+       child = children->data;
++      children = children->next;
+
+       (* callback) (child->widget, callback_data);
+     }
+--
+1.7.3.5
+
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to