Re: [g-a-devel] events in ATK and AT-SPI



Hi,

It is the ATK bridge that calls your add_global_event_listeners() in its init routine.
All the items in your second list are printed out by your add_global_event_listeners() which, in turn, is called
in the ATK bridge's init routine.

You can take a look at ATK bridge's source code.
The related code is in bridge.c .
spi_atk_register_event_listeners() calls your add_global_event_listeners().

Regards,

Ke

On 09/17/09 22:57, Quiring, Sam wrote:
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


From: gnome-accessibility-devel-bounces gnome org [mailto:gnome-accessibility-devel-bounces gnome org] On Behalf Of Quiring, Sam
Sent: Monday, September 14, 2009 8:07 AM
To: Gnome-accessibility-devel gnome org
Subject: [g-a-devel] events in ATK and AT-SPI

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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]