togglebutton: Set a11y properties on realize
authorMatthias Clasen <mclasen@redhat.com>
Sun, 11 Jun 2023 23:28:16 +0000 (19:28 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 12 Jun 2023 00:29:25 +0000 (20:29 -0400)
The pressed property is required, so we need to
make sure that it is set.

gtk/gtktogglebutton.c

index 8f0b4c89ffe49b548a14cbdcc82ec4cc2782e439..3f2dc468c64ceb2ebc641f3402de033c14ccbbca 100644 (file)
@@ -260,6 +260,19 @@ get_group_first (GtkToggleButton *self)
   return group_first;
 }
 
+static void
+gtk_toggle_button_realize (GtkWidget *widget)
+{
+  GtkToggleButton *self = GTK_TOGGLE_BUTTON (widget);
+  GtkToggleButtonPrivate *priv = gtk_toggle_button_get_instance_private (self);
+
+  GTK_WIDGET_CLASS (gtk_toggle_button_parent_class)->realize (widget);
+
+  gtk_accessible_update_state (GTK_ACCESSIBLE (widget),
+                               GTK_ACCESSIBLE_STATE_PRESSED, priv->active,
+                               -1);
+}
+
 static void
 gtk_toggle_button_class_init (GtkToggleButtonClass *class)
 {
@@ -272,6 +285,7 @@ gtk_toggle_button_class_init (GtkToggleButtonClass *class)
   gobject_class->get_property = gtk_toggle_button_get_property;
 
   widget_class->mnemonic_activate = gtk_toggle_button_mnemonic_activate;
+  widget_class->realize = gtk_toggle_button_realize;
 
   button_class->clicked = gtk_toggle_button_clicked;