Introduce global event emitter for accessibility events. With such emitter
there is no need to register array of callbacks on every accessibility object.
Fallback eldbus interface allows to handle dbus method call on
multiple object paths only with single callback. This greatly
reduces a ammount of memory since there is no need
to register eldbus interface for every accessible object.
Patch adds connected/disconnected elm_atspi_bridge events to avoid
races between window getting focus and AT-SPI2 bus initialization.
When bridge gets connected windows will reemit all "Created",
"Activated" and "Deactivated" events with regard to window focus.
elm_interface_atspi_widget object was previously used to implement
atspi features on top of elm_widget object. However such inheritance
obfuscates a design, so atspi features implementation was moved directly
into elm_widget code.
Summary:
Change requested by TAsn. Previuosly AT-SPI headers were kept private
and included directly into elementary source code. From now on,
AT-SPI headers can be included from Elementary.h public header, however
will be marked as beta APIs.
Commit includes following changes:
* include all atspi headers into new elm_interfaces.h header.
* marking all at-spi interfaces methods/properties as @protected.
* wrap all common headers with EFL_BETA_API_SUPPORT.
* make some common APIs visible in lib, by adding EAPI attribute
(if someone decides to use beta APIs).
Test Plan: out-off tree build with gcc, g++
Reviewers: tasn
Reviewed By: tasn
Subscribers: seoz, q66, kuuko
Maniphest Tasks: T1721
Differential Revision: https://phab.enlightenment.org/D1528
eo_add()'s counterpart is eo_del, not eo_unref. Regardless of that, some
objects were being double-deleted which spew out some eo errors. These
things should now be fixed.
bc6b6aa457 is the relevant EFL commit.
Summary:
Main purpose of exposing widget actions and keyboard shortcuts
is to allow accessibility clients to implement alternative methods
of GUI navigation.
Reviewers: z.kosinski
Reviewed By: z.kosinski
Subscribers: seoz
Differential Revision: https://phab.enlightenment.org/D1227
atspi d-bus signals have similar signatures, however use dbus variant type
to encode signal specific data. This patch adds utility function to construct
atspi dbus signal with custom variant data.
Summary:
Method is required by AT-SPI clients when interface caching is disabled.
Method is not listed in any at-spi specification - found during fixing
clients behaviour.
Reviewers: raster, seoz, z.kosinski
Reviewed By: z.kosinski
Differential Revision: https://phab.enlightenment.org/D971
Summary:
Allow to create ATSPI aware objects only by attaching Atspi interface to
Eo object. Apply protected rule to all methods, properties which should
not be available to app developer. Remove public atspi header from Elementary.h.
Make Elm_Widget inherit from Atspi interfaces, Elm_Win inherits additional
Atspi_Window interface.
Unified file names - all atspi related objects/interfaces can be found under
elm_atspi_*
and elm_interface_atspi_*.
Test Plan:
build&install, out-off tree example compilation with gcc and g++,
Orca screen reader tests on Ubuntu 12.04.
Reviewers: raster, seoz, tasn, JackDanielZ
Differential Revision: https://phab.enlightenment.org/D718