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