[BLOCKED] Lack of window:activate event leads to not presenting object context when switching apps
If a window emits a window:deactivate
event but the next one doesn't emit a window:activate
one, no context is presented for the focused object on that second window.
Tested under MATE/Marco:
- Launch samplegtkapp.py twice, once with the argument "3" (for launching a GTK3 app) and once without (for a GTK2 one):
$ python samplegtkapp & $ python samplegtkapp 3 &
- Alt-Tab between the two back and forth.
Expected result: The widget hierarchy (and especially the frame) is presented in all cases.
Actual result: The frame is only presented when the GTK3 app gains focus. When the GTK2 one gains focus, only the text widget is presented.
The problem comes from Orca's window:deactivate
handler unsetting locusOfFocus
, but when there is no window:activate
afterward it still is None
when presenting the text object, leading to generateSpeech()
not building an ancestor hierarchy.
The issue is solved both if neither app is issuing window:deactivate
(as then the hierarchy comparison will do the job), or if both were issuing window:activate
(as then the window is focused first). Unfortunately with the recent stories about these events, I don't think we can hope for a streamlined behavior here in the
near future.