a11y: Port from deprecated atk_focus_tracker_notify
Port `gail_focus_notify` from using the deprecated
`atk_focus_tracker_notify` to notify about the new
focus object. Notify of a state of the focused state
instead, as suggested in the
`atk_focus_tracker_notify` doc [1].
Using the deprecated function e.g. resulted in
the Orca screen reader no longer announcing
initial focus on editable comboboxes in
LibreOffice Writer's toolbars after Orca dropped
support for the deprecated "focus" AT-SPI event
in this commit [2]:
commit 9e2902dd46c7e583a097e235dfd7e3c50b016383
Author: Joanmarie Diggs <jdiggs@igalia.com>
Date: Wed May 1 12:14:07 2024 +0200
Remove the on_focus handler for the LibreOffice script
The "focus:" event was deprecated many years ago. If the expected
"object:state-changed:focused" event is absent, that bug should
be fixed.
This commit makes the announcement work again.
It also fixes the scenario described in [3].
[1] https://docs.gtk.org/atk/func.focus_tracker_notify.html
[2] 9e2902dd46
[3] https://gitlab.gnome.org/GNOME/gtk/-/issues/454#note_2099344
Fixes: #454
This commit is contained in:
parent
ebc84a6185
commit
5147e95d1d
@ -525,11 +525,9 @@ gail_focus_notify (GtkWidget *widget)
|
||||
/*
|
||||
* Do not report focus on redundant object
|
||||
*/
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
|
||||
if (atk_obj &&
|
||||
(atk_object_get_role(atk_obj) != ATK_ROLE_REDUNDANT_OBJECT))
|
||||
atk_focus_tracker_notify (atk_obj);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
atk_object_notify_state_change (atk_obj, ATK_STATE_FOCUSED, TRUE);
|
||||
if (atk_obj && transient)
|
||||
g_object_unref (atk_obj);
|
||||
if (subsequent_focus_widget)
|
||||
|
Loading…
Reference in New Issue
Block a user