Web lists-archives.com

a11y: Unwanted deactivate/activate window events upon X grabs


I'm trying to tackle https://bugzilla.gnome.org/show_bug.cgi?id=776854
down, and it seems that the unwanted events are originating from
gtkaccessibility.c's window_focus().

The problem here is that those AT events get emitted for e.g. global
keyboard shortcuts from the WM, even though no logical window focus
changed.  This leads to e.g. Orca re-announcing the current window for
no good reason -- or worse if the events get dispatched out of order
(likely because they come from different sources?).

As I understand it, it's getting some of the grab-triggered
FocusOut/FocusIn events, because although GDK does some fairly complex
filtering on that already, it lets some through in some cases --
probably for a good reason I guess, as it seems to be done on purpose.

After a lot of searching, I found a relevant thread on wm-spec-list:
But it's not very clear to me now what something like a11y in GTK should
do then:

* Listen to _NET_ACTIVE_WINDOW changes? (how?)
* Listen to FocusChange and ignore *all* but NotifyNormal? (how?)
* Something else?  Does that client message mentioned in the thread
exist by now?

I'm not quite sure, esp. as I'm not very knowledgeable about X or WM
stuff, so the possible implication of each of those probably elude me.

gtk-devel-list mailing list