From 63534fd9eb532d8a37ce0762d206885c53c5919a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 20 Jun 2023 10:40:12 -0400 Subject: [PATCH] widget: Fix accessible hidden state Make this track the widgets' mapped state instead of visible. Also, set hidden to FALSE initially, since the accessible name computation checks for hidden==FALSE. --- gtk/gtkwidget.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 4f0b1f0be9..e8225cdbbf 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2380,6 +2380,10 @@ gtk_widget_init (GTypeInstance *instance, gpointer g_class) } priv->at_context = create_at_context (widget); + + gtk_accessible_update_state (GTK_ACCESSIBLE (widget), + GTK_ACCESSIBLE_STATE_HIDDEN, TRUE, + -1); } static void @@ -2708,10 +2712,6 @@ gtk_widget_show (GtkWidget *widget) g_signal_emit (widget, widget_signals[SHOW], 0); g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_VISIBLE]); - gtk_accessible_update_state (GTK_ACCESSIBLE (widget), - GTK_ACCESSIBLE_STATE_HIDDEN, FALSE, - -1); - gtk_widget_pop_verify_invariants (widget); g_object_unref (widget); } @@ -2775,10 +2775,6 @@ gtk_widget_hide (GtkWidget *widget) g_signal_emit (widget, widget_signals[HIDE], 0); g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_VISIBLE]); - gtk_accessible_update_state (GTK_ACCESSIBLE (widget), - GTK_ACCESSIBLE_STATE_HIDDEN, TRUE, - -1); - parent = gtk_widget_get_parent (widget); if (parent) gtk_widget_queue_resize (parent); @@ -2851,6 +2847,10 @@ gtk_widget_map (GtkWidget *widget) gtk_widget_queue_draw (widget); + gtk_accessible_update_state (GTK_ACCESSIBLE (widget), + GTK_ACCESSIBLE_STATE_HIDDEN, FALSE, + -1); + gtk_widget_pop_verify_invariants (widget); } } @@ -2880,6 +2880,10 @@ gtk_widget_unmap (GtkWidget *widget) update_cursor_on_state_change (widget); + gtk_accessible_update_state (GTK_ACCESSIBLE (widget), + GTK_ACCESSIBLE_STATE_HIDDEN, TRUE, + -1); + gtk_widget_pop_verify_invariants (widget); g_object_unref (widget); } -- 2.30.2