mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-29 06:51:10 +00:00
a11y: Set ATSPI_STATE_SHOWING for all widgets, not only for windows
According to the at-spi2 docs, for a widget to be considered visible, it needs both the showing and visible states. Many applications rely on that, for example the flat review functionality of Orca. this fixes #5194
This commit is contained in:
parent
435bc70886
commit
878b80806e
@ -142,10 +142,10 @@ collect_states (GtkAtSpiContext *self,
|
||||
accessible = gtk_at_context_get_accessible (ctx);
|
||||
|
||||
set_atspi_state (&states, ATSPI_STATE_VISIBLE);
|
||||
set_atspi_state (&states, ATSPI_STATE_SHOWING);
|
||||
|
||||
if (ctx->accessible_role == GTK_ACCESSIBLE_ROLE_WINDOW)
|
||||
{
|
||||
set_atspi_state (&states, ATSPI_STATE_SHOWING);
|
||||
if (gtk_accessible_get_platform_state (accessible, GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE))
|
||||
set_atspi_state (&states, ATSPI_STATE_ACTIVE);
|
||||
}
|
||||
@ -928,6 +928,7 @@ gtk_at_spi_context_state_change (GtkATContext *ctx,
|
||||
{
|
||||
gtk_at_spi_root_child_changed (self->root, change, accessible);
|
||||
emit_state_changed (self, "showing", gtk_boolean_accessible_value_get (value));
|
||||
emit_state_changed (self, "visible", gtk_boolean_accessible_value_get (value));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user