Re: [g-a-devel] GtkSocket/GtkPlug accessibility



Hello,

Samuel Thibault, le mer. 14 août 2019 17:44:43 +0200, a ecrit:
I have add AtkSocket/AtkPlug support to mate-panel here:

https://salsa.debian.org/hypra-team/mate-panel/blob/stretch-applets/debian/patches/1001_atk-socket-plug

I'm now looking at the support for tray icons, and the situation is more
tricky and makes me think we really need to stuff the support inside
GtkPlug.

Tray icon docking seems to be requested through a
_NET_SYSTEM_TRAY_OPCODE XClientMessage event, that transmits the plug
Window id for the socket to embed it. The event is too small to also
embed the at-spi path, but we could set a property on the Window to
contain it.

Each and every applet creating tray icons could add that support,
but we'd rather have a shared implementation. Applets happen to use
GtkStatusIcon which contains a GtkTrayIcon, which inherits from GtkPlug.
So, again it would make sense to integrate the addition of an accessible
at the GtkPlug level, and advertise it with a _NET_WM property there.

Now, thinking more about this, maybe there is a way to make all of this
transparent to applications using GtkSocket/GtkPlug:

- introduce the at-spi objects I mentioned in my Aug 14th mail
- make GtkPlug expose the at-spi path as a _NET_WM property.
- make gtk_socket_add_window try to read it, and if it exists, call
  atk_socket_embed on it

That should be working both for the mate-panel implementation mentioned
above, and for tray icons. And for anything that uses GtkPlug/Socket.

Is there anything I might be missing?

Samuel


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]