[g-a-devel] Wayland Migration: Getting the Z-Order of Top-Level Windows
- From: Piñeiro <apinheiro igalia com>
- To: <gnome-accessibility-devel gnome org>
- Cc: scampa giovanni gmail com, jstpierre mecheye net, matthias clasen gmail com
- Subject: [g-a-devel] Wayland Migration: Getting the Z-Order of Top-Level Windows
- Date: Tue, 15 Oct 2013 14:58:32 +0100
Hi all.
One of the things we need to sort out as part of the Wayland migration
is how to get the z-order of accessible windows. The primary reason
Assistive Technologies have a need for this is to be able to get the
accessible object at a given point in an environment in which there
might be multiple accessible objects at that point in different
windows/layers. (ATs care about the topmost object in the stack.)
The way we have been handling this situation up to now is via libwnck's
wnck_screen_get_windows_stacked(). In our brave new Wayland world, we'll
lose this solution. That's the bad news. The good news is that we have
existing accessibility API in place that we feel ATK implementors could
use to expose this information [1]:
gint atk_component_get_mdi_zorder (AtkComponent *component);
Gets the zorder of the component. The value G_MININT
will be returned if the layer of the component is not
ATK_LAYER_MDI or ATK_LAYER_WINDOW.
The question is: Where (by whom) should this be implemented? We have
some initial thoughts on this:
1. Application toolkits should implement atk_component_get_mdi_zorder()
for non-top-level windows. This is because the existing API [1] expects
a return value that is relative to other components in the same
container. Then AT-SPI2 would pass the z-order along to ATs through
atspi_component_get_mdi_z_order(). [2]
2. For top-level windows, it becomes a bit trickier. During the
Montreal Summit, Matthias suggested we could potentially get the
information we've been getting from libwnck in X by adding new API to
Mutter/Wayland. But upon further reflection we concluded that would not
be sufficient. At least in the case of Orca and its users, we cannot
assume Mutter (or X, or Wayland): Orca is being used in Unity, XFCE, and
LXDE in addition to GNOME Shell.
For this reason, we think the best way forward is for the toolkits to
also implement atk_component_get_mdi_zorder() for top-level
windows, as the toolkits know which environment (X, Wayland) they are
in. In order for this to work, that new API on Mutter/Wayland would need
to be available to those toolkits. But as we didn't get into too much
detail during the Summit, we are not sure if that is possible. Is it?
Other thoughts?
Best regards,
--Piñeiro and Joanie
p.s. Tuesday and Wednesday are travel days for us. Apologies in advance
for any "delayed" responses.
[1]
https://developer.gnome.org/atk/unstable/AtkComponent.html#atk-component-get-mdi-zorder
[2]
https://developer.gnome.org/libatspi/2.10/libatspi-atspi-component.html#atspi-component-get-mdi-z-order
--
Alejandro Piñeiro Iglesias (apinheiro igalia com)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]