Pick up a few upstream fixes
This commit is contained in:
parent
3238d3d0ae
commit
b9b5e3932c
@ -0,0 +1,36 @@
|
|||||||
|
From 54c97f3ba2358c60fcc32404b67716e44384fb52 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthias Clasen <mclasen@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
|
||||||
|
|
120
buildable-regression.patch
Normal file
120
buildable-regression.patch
Normal file
@ -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);
|
@ -19,6 +19,8 @@ URL: http://www.gtk.org
|
|||||||
Source: http://download.gnome.org/sources/gtk+/2.99/gtk+-%{version}.tar.bz2
|
Source: http://download.gnome.org/sources/gtk+/2.99/gtk+-%{version}.tar.bz2
|
||||||
Source1: im-cedilla.conf
|
Source1: im-cedilla.conf
|
||||||
Patch0: gtk3-build-fix.patch
|
Patch0: gtk3-build-fix.patch
|
||||||
|
Patch1: 0001-Fix-another-GtkFixed-regression-in-gtk_fixed_forall.patch
|
||||||
|
Patch2: buildable-regression.patch
|
||||||
|
|
||||||
BuildRequires: gnome-common autoconf automake intltool gettext
|
BuildRequires: gnome-common autoconf automake intltool gettext
|
||||||
BuildRequires: atk-devel >= %{atk_version}
|
BuildRequires: atk-devel >= %{atk_version}
|
||||||
@ -112,6 +114,8 @@ widget toolkit.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n gtk+-%{version}
|
%setup -q -n gtk+-%{version}
|
||||||
%patch0 -p1 -b .build-fix
|
%patch0 -p1 -b .build-fix
|
||||||
|
%patch1 -p1 -b .fixed-destroy
|
||||||
|
%patch2 -p1 -b .buildable-regression
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -157,6 +161,7 @@ install -D %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d/im-cedill
|
|||||||
rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/*/*.la
|
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/*/*.la
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/*/*.la
|
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/*/*.la
|
||||||
|
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/engines/libpixmap.so
|
||||||
|
|
||||||
touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache
|
touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user