I think I figured this out. The
at-spi-registryd examines each of the event types for which an accessible app
using AT-SPI registers a global event listener. If the event type
begins with one of these strings:
focus:
mouse:
object:
document:
window:
keyboard:
then the registryd program itself takes care of
handling events and notifying the global event listener. If the
event type does not begin with one of these strings, then the registryd
assumes it is an event recognized by a toolkit and calls (through bonobo)
each application's toolkit, which will call ATK's
AtkUtilClass.add_global_event_listener() so the ATK implementation can
register the listener, if the event is applicable.
This description is not totally complete.
As I mentioned below, my implementation of
AtkUtilClass.add_global_event_listener() received requests to register
listeners for some event types that begin with "window:". If my
explanation above were totally correct/complete, then these should have been
intercepted by the registryd.
-Sam
Greetings,
I have
connected up my ATK implementation of
add_global_event_listener() to the AtkUtilClass. My routine
prints out the name of the event for each listener that is added into a log
file.
My AT-SPI client
adds these listeners:
SPI_registerGlobalEventListener(focusListener,
"focus:");
SPI_registerGlobalEventListener(mouseAbsListener,
"mouse:abs");
SPI_registerGlobalEventListener(mouseButtonListener,
"mouse:button");
SPI_registerGlobalEventListener(buttonPressListener,
"Gtk:GtkWidget:button-press-event");
SPI_registerGlobalEventListener(selectionChangedListener,
"object:selection-changed");
SPI_registerGlobalEventListener(defunctListener,
"object:state-changed:defunct");
When I look at the
log created by my ATK routine, the only listener I see get added from the list
above is for Gtk:GtkWidget:button-press-event. Does anyone
know what happens to the
other SPI-registerGlobalEventListener requests?
-Sam
For the record,
here is the complete list of events for which my
add_global_event_listener() is called, in order:
Gtk:AtkObject:property-change
window:create
window:destroy
window:minimize
window:maximize
window:restore
window:activate
window:deactivate
Gtk:AtkDocument:load-complete
Gtk:AtkDocument:reload
Gtk:AtkDocument:load-stopped
Gtk:AtkObject:state-change
Gtk:AtkObject:children-changed
Gtk:AtkObject:visible-data-changed
Gtk:AtkObject:active-descendant-changed
Gtk:AtkComponent:bounds-changed
Gtk:AtkSelection:selection-changed
Gtk:AtkText:text-selection-changed
Gtk:AtkText:text-changed
Gtk:AtkText:text-caret-moved
Gtk:AtkText:text-attributes-changed
Gtk:AtkTable:row-inserted
Gtk:AtkTable:row-reordered
Gtk:AtkTable:row-deleted
Gtk:AtkTable:column-inserted
Gtk:AtkTable:column-reordered
Gtk:AtkTable:column-deleted
Gtk:AtkTable:model-changed
Gtk:AtkHypertext:link-selected
Gtk:GtkWidget:button-press-event
_______________________________________________
Gnome-accessibility-devel mailing list
Gnome-accessibility-devel gnome org
http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel