Skip to content
  • Samuel Thibault's avatar
    GtkPlug/Socket: add accessibility support · 7ee6fb2e
    Samuel Thibault authored
    When a plug is embedded in a socket, we need to also plug the at-spi
    tree, so that screen readers can find the at-spi content of the plugged
    This change does this plugging automatically: on the plug widget, an
    additional _XEMBED_AT_SPI_PATH property is set to provide the at-spi path
    (just like we have _XEMBED_INFO for other X11 information), and when
    embedding it, the socket reads it, and makes it as its only child.
    Since GtkPlugAccessible can not inherit both from AtkPlug (a child of
    AtkObject) and from GtkContainerAccessible (a child of AtkObject), we
    actually make GtkPlugAccessible a child of an AtkPlug, and that's what
    will be embedded (in at-spi terms) into an AtkSocket.
    Similarly, GtkSocketAccessible can not inherit both from AtkSocket and
    GtkContainerAccessible, so we make it a parent of the AtkSocket that
    embeds the AtkPlug.
    This change depends on atk 2.35.1 which implements the at-spi technical
    This separates out atk-bridge-2.0 dependency, which is not part of atk,
    but of at-spi2-atk.