Christopher Aillon 9ae019
http://bugzilla.gnome.org/show_bug.cgi?id=350552
Christopher Aillon 9ae019
https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c28
Christopher Aillon 9ae019
https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c41 (part 2)
Christopher Aillon 9ae019
Christopher Aillon 9ae019
Index: atk-bridge/bridge.c
Christopher Aillon 9ae019
===================================================================
Christopher Aillon 9ae019
--- atk-bridge/bridge.c	(revision 988)
Christopher Aillon 9ae019
+++ atk-bridge/bridge.c	(working copy)
Christopher Aillon 9ae019
@@ -1160,13 +1160,22 @@
Christopher Aillon 9ae019
   else if ((signal_query.signal_id == atk_signal_children_changed) && gobject)
Christopher Aillon 9ae019
     {
Christopher Aillon 9ae019
       detail1 = g_value_get_uint (param_values + 1);
Christopher Aillon 9ae019
-      ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), 
Christopher Aillon 9ae019
-			        	    detail1);
Christopher Aillon 9ae019
-      if (ao) 
Christopher Aillon 9ae019
-        {
Christopher Aillon 9ae019
-          s_ao = spi_accessible_new (ao);
Christopher Aillon 9ae019
-          c_obj = BONOBO_OBJREF (s_ao);
Christopher Aillon 9ae019
-          spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj);
Christopher Aillon 9ae019
+      gpointer child = g_value_get_pointer (param_values + 2);
Christopher Aillon 9ae019
+      if (ATK_IS_OBJECT (child))
Christopher Aillon 9ae019
+	{
Christopher Aillon 9ae019
+	  ao = ATK_OBJECT (child);
Christopher Aillon 9ae019
+	  g_object_ref (ao);
Christopher Aillon 9ae019
+	}
Christopher Aillon 9ae019
+      else
Christopher Aillon 9ae019
+	{
Christopher Aillon 9ae019
+	  ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), 
Christopher Aillon 9ae019
+						detail1);
Christopher Aillon 9ae019
+	}
Christopher Aillon 9ae019
+      if (ao)
Christopher Aillon 9ae019
+	{
Christopher Aillon 9ae019
+	  s_ao = spi_accessible_new (ao);
Christopher Aillon 9ae019
+	  c_obj = BONOBO_OBJREF (s_ao);
Christopher Aillon 9ae019
+	  spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj);
Christopher Aillon 9ae019
 	  g_object_unref (ao);
Christopher Aillon 9ae019
 	}
Christopher Aillon 9ae019
       else
Christopher Aillon 9ae019