Re: [g-a-devel] events in ATK and AT-SPI
- From: "Quiring, Sam" <Sam Quiring windriver com>
- To: <Gnome-accessibility-devel gnome org>
- Subject: Re: [g-a-devel] events in ATK and AT-SPI
- Date: Thu, 17 Sep 2009 07:57:06 -0700
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]