colordialogbutton: Shuffle accessible roles around
authorMatthias Clasen <mclasen@redhat.com>
Sun, 18 Jun 2023 02:36:47 +0000 (22:36 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 18 Jun 2023 02:40:17 +0000 (22:40 -0400)
Make the color button itself take the button role,
and make the internal toggle button just be generic.

This solves the problem that labelled-by relations
that are set up in ui files via mnemonics point at
the toplevel, not the toggle button.

gtk/gtkcolordialogbutton.c

index dce03690d1a508d34a65f513ae0f6d5b9ffae5c3..8fdb63039696ae2873669e9237bea56675eec3e0 100644 (file)
@@ -110,7 +110,9 @@ gtk_color_dialog_button_init (GtkColorDialogButton *self)
 
   self->color = GDK_RGBA ("00000000");
 
-  self->button = gtk_button_new ();
+  self->button = g_object_new (GTK_TYPE_BUTTON,
+                               "accessible-role", GTK_ACCESSIBLE_ROLE_GENERIC,
+                               NULL);
   g_signal_connect_swapped (self->button, "clicked", G_CALLBACK (button_clicked), self);
   gtk_widget_set_parent (self->button, GTK_WIDGET (self));
 
@@ -280,6 +282,7 @@ gtk_color_dialog_button_class_init (GtkColorDialogButtonClass *class)
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, "colorbutton");
+  gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_BUTTON);
 }
 
 /* }}} */