Re: [g-a-devel] intercepting keys



Hi Mike,

Please refer to Accessibility_Registry.idl, AT can register a keystroke listener (global or non-global) by registerKeystrokeListener. The listener will be added to the listener list.

For non-global listeners, when there is a keyboard event, spi_atk_bridge_key_listener in atk-bridge will notify at-spi-registryd by Accessibility_DeviceEventController_notifyListenersSync. And at-spi-registryd will notify every non-global listeners. I think Orca gets events in this way.

For global listeners, at-spi-registryd calls gdk_window_add_filter to get events from all windows. And at-spi-registryd will transfer the event to global listeners. Do you mean this way does not work on your system?

So for non-global listeners, the bridge need to intercept keys and pass them to the registry.

Thanks,
Li


Mike Gorse wrote:
Hi all,

Can someone explain how the registry daemon is supposed to listen for keyboard events? There is a function in deviceeventcontroller.c called spi_controller_register_global_keygrabs which looks like it's supposed to cause the daemon to grab keys, but it seems to do nothing on my system. Instead, it looks like it is each application's responsibility to pass keys along so that, say, Orca will see them (this is done by gail for gtk applications); otherwise Orca won't know if a user presses one of its hot keys. We don't currently have code in the UIA-to-ATK bridge to handle this, so I'm trying to figure out if we need code to intercept keys and pass them on to the registry.

Thanks,
-Mike G-
_______________________________________________
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]