diff --git a/at-spi-1.21.92-firefoxperf1.patch b/at-spi-1.21.92-firefoxperf1.patch new file mode 100644 index 0000000..970b55d --- /dev/null +++ b/at-spi-1.21.92-firefoxperf1.patch @@ -0,0 +1,39 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=350552 +https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c28 +https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c41 (part 2) + +Index: atk-bridge/bridge.c +=================================================================== +--- atk-bridge/bridge.c (revision 988) ++++ atk-bridge/bridge.c (working copy) +@@ -1160,13 +1160,22 @@ + else if ((signal_query.signal_id == atk_signal_children_changed) && gobject) + { + detail1 = g_value_get_uint (param_values + 1); +- ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), +- detail1); +- if (ao) +- { +- s_ao = spi_accessible_new (ao); +- c_obj = BONOBO_OBJREF (s_ao); +- spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj); ++ gpointer child = g_value_get_pointer (param_values + 2); ++ if (ATK_IS_OBJECT (child)) ++ { ++ ao = ATK_OBJECT (child); ++ g_object_ref (ao); ++ } ++ else ++ { ++ ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), ++ detail1); ++ } ++ if (ao) ++ { ++ s_ao = spi_accessible_new (ao); ++ c_obj = BONOBO_OBJREF (s_ao); ++ spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj); + g_object_unref (ao); + } + else + diff --git a/at-spi-1.21.92-firefoxperf2.patch b/at-spi-1.21.92-firefoxperf2.patch new file mode 100644 index 0000000..2f155b9 --- /dev/null +++ b/at-spi-1.21.92-firefoxperf2.patch @@ -0,0 +1,22 @@ +http://bugzilla.gnome.org/show_bug.cgi?id=520490 +https://bugzilla.mozilla.org/show_bug.cgi?id=418845#41 (part 4 of analysis) + +diff -up at-spi-1.21.92/atk-bridge/bridge.c.firefoxperf at-spi-1.21.92/atk-bridge/bridge.c +--- at-spi-1.21.92/atk-bridge/bridge.c.firefoxperf 2008-03-05 11:28:24.000000000 -0500 ++++ at-spi-1.21.92/atk-bridge/bridge.c 2008-03-05 11:31:01.000000000 -0500 +@@ -745,7 +745,6 @@ spi_atk_emit_eventv (const GObject + AtkObject *aobject; + SpiAccessible *source = NULL; + Accessibility_Registry registry; +- const gchar *name; + #ifdef SPI_BRIDGE_DEBUG + CORBA_string s = NULL; + #endif +@@ -773,7 +772,6 @@ spi_atk_emit_eventv (const GObject + va_end (args); + return; + } +- name = atk_object_get_name (aobject); + e.type = g_strdup_vprintf (format, args); + if (source) e.source = BONOBO_OBJREF (source); + e.detail1 = detail1; diff --git a/at-spi.spec b/at-spi.spec index 750cefd..fdba62b 100644 --- a/at-spi.spec +++ b/at-spi.spec @@ -10,7 +10,7 @@ Summary: Assistive Technology Service Provider Interface Name: at-spi Version: 1.21.92 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://developer.gnome.org/projects/gap/ Source0: http://download.gnome.org/sources/at-spi/1.21/%{name}-%{version}.tar.bz2 @@ -37,6 +37,9 @@ BuildRequires: libXi-devel BuildRequires: libXevie-devel BuildRequires: libXt-devel +Patch1: at-spi-1.21.92-firefoxperf1.patch +Patch2: at-spi-1.21.92-firefoxperf2.patch + %description at-spi allows assistive technologies to access GTK-based applications. Essentially it exposes the internals of applications for @@ -71,6 +74,8 @@ Python bindings allowing to use at-spi in python programs. %prep %setup -q +%patch1 -p0 -b .firefoxperf1 +%patch2 -p1 -b .firefoxperf2 %build @@ -117,6 +122,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Mar 5 2008 Christopher Aillon - 1.21-92-2 +- Perf improvement work from Ginn Chen to help a11y-enabled-firefox3 + * Mon Feb 25 2008 Matthias Clasen - 1.21.92-1 - Update to 1.21.92