[gtk/model-button-a11y-state] modelbutton: Update a11y states
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/model-button-a11y-state] modelbutton: Update a11y states
- Date: Fri, 31 Jan 2020 18:10:32 +0000 (UTC)
commit 09b14437a8c77ac00856f8e056143ed78240cc6a
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jan 31 19:08:09 2020 +0100
modelbutton: Update a11y states
We took care to set the proper role on our accessible object,
but we forgot to update the state for check and radio button
roles.
gtk/gtkmodelbutton.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
---
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c
index 05153672de..4653cff7bf 100644
--- a/gtk/gtkmodelbutton.c
+++ b/gtk/gtkmodelbutton.c
@@ -247,6 +247,15 @@ gtk_model_button_update_state (GtkModelButton *button)
gtk_css_gadget_set_state (button->gadget, state);
gtk_css_gadget_set_state (button->indicator_gadget, indicator_state);
+
+ if (button->role == GTK_BUTTON_ROLE_CHECK ||
+ button->role == GTK_BUTTON_ROLE_RADIO)
+ {
+ AtkObject *object = _gtk_widget_peek_accessible (GTK_WIDGET (button));
+ if (object)
+ atk_object_notify_state_change (object, ATK_STATE_CHECKED,
+ (indicator_state & GTK_STATE_FLAG_CHECKED));
+ }
}
static void
@@ -1090,6 +1099,18 @@ gtk_model_button_finalize (GObject *object)
G_OBJECT_CLASS (gtk_model_button_parent_class)->finalize (object);
}
+static AtkObject *
+gtk_model_button_get_accessible (GtkWidget *widget)
+{
+ AtkObject *object;
+
+ object = GTK_WIDGET_CLASS (gtk_model_button_parent_class)->get_accessible (widget);
+
+ gtk_model_button_update_state (GTK_MODEL_BUTTON (widget));
+
+ return object;
+}
+
static void
gtk_model_button_class_init (GtkModelButtonClass *class)
{
@@ -1111,6 +1132,7 @@ gtk_model_button_class_init (GtkModelButtonClass *class)
widget_class->destroy = gtk_model_button_destroy;
widget_class->state_flags_changed = gtk_model_button_state_flags_changed;
widget_class->direction_changed = gtk_model_button_direction_changed;
+ widget_class->get_accessible = gtk_model_button_get_accessible;
button_class->clicked = gtk_model_button_clicked;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]