From: "Wan, Shuang" <[email protected]>

> Choice accerciser is because of accerciser has removed Corba or Bonobo depe=
> ndency. Dogtail seems still has some dependency to CORBA but not so tightly=
> . So we will try the dogtail on moblin, this will make our communication mo=
> re easy and from long run I do need an automation tool like dogtail :)
> Another choice might be the LDTP, as I know LDTPv2 has re-written using pya=
> tspi (cspi is deprecated to atpsi-dbus), and removed the Bonobo dependency.=
>  But I haven't tried it yet.

Yes, LDTPv2 is another option, but I dont have previous experience. 

> >Anyway, after the comments from Sam Quiring I thought that the default
> >SPI is still the bonobo-at-spi, do you really need to use the dbus
> >one?
> 
> Corba inter-process communication protocol is deprecated to Moblin, so move=
>  back to Bonobo is not best choice from now on. Although the path to make a=
>  workable UI test solution based on ATSPI-dbus is hard considering most of =
> underlying packages are under early development, but I do need to use the d=
> bus one.

Well, bonobo and CORBA is also deprecated in the desktop, but we are
still using the corba at-spi on desktop because the dbus one, although
in a very good shape, is still in process (AFAIK), and in a testing
process (like as you and me are doing).

> >But yes, some day I would need to test cally inside mobling, and more
> >important, using AT-SPI-DBUS.
> That's great. Thanks!

Finally I use some time to test it (not moblin, just at-spi dbus on my
desktop) and I confirm the problem you found, and in the same way, I
think that I found the reason.

As you said, using my example the stage has 3 children, but at first,
on creation, is has 0. So the problem is that the state of the tree is
not updated. Taking a look to at-spi-dbus code I found that the tree
information is updated using event listeners:

accessible_register.c:674
  atk_add_global_event_listener (tree_update_property_listener, 
"Gtk:AtkObject:property-change");
  atk_add_global_event_listener (tree_update_children_listener, 
"Gtk:AtkObject:children-changed");
  atk_add_global_event_listener (tree_update_state_listener, 
"Gtk:AtkObject:state-change");

I'm not sure how the bonobo one manages this, but it seems that it was
not as dependent of the events. Anyway, if I comment out all this
add_events on this file and on event.c, I don't have the problem with
gcalctool. But probably, in this case the problem is in the
AccessibleCache at the pyatspi.

The problem is that atk_add_global_event_listener is not yet
implemented on Cally:
   http://bugzilla.o-hand.com/show_bug.cgi?id=1735

Anyway, after a long talk with Joanmarie Diggs here in the Boston
Summit [2], we have take a look to all the cally bugs, and due ORCA
requirements, this becomes the Cally bug with higher priority. And you
have just pointed a new reason to implement it, thanks.

CCing Mark Doffman as he has more information about this and I have
some questions:

  * What do you think about my conclusions? (probably they are wrong,
    as was just after review at-spi-dbus code for 10 minutes).

  * After a quick look it seems that this dbus bridge is really tied
    to the Gtk toolkit, at least more tied than the old one. I'm
    wrong?

  * Do you think that right now the dbus-spi is suitable for other
    toolkits (in this case Cally, but in the future probably others)?

  * In the code attached you add a listener to
    "Gtk:AtkObject:children-changed". As this is a AtkObject signal
    [1], do you really think that is neccessary the Gtk prefix?

Best regards.

[1] 
http://library.gnome.org/devel/atk/stable/AtkObject.html#AtkObject-children-changed
[2] http://live.gnome.org/Boston2009

===
API ([email protected])

-- 
To unsubscribe send a mail to [email protected]

Reply via email to